
L1: 55 ?? push ebp
 8b ec ?? mov ebp, esp
 57 ?? push edi
 56 ?? push esi
 8b 75 0c ?? mov esi, dword ss:[ebp + 12]
 8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
 8b 7d 08 ?? mov edi, dword ss:[ebp + 8]
 8b c1 ?? mov eax, ecx
 8b d1 ?? mov edx, ecx
 03 c6 ?? add eax, esi
 3b fe ?? cmp edi, esi
 76 08 ?? jbe basic block L3

L2: 3b f8 ?? cmp edi, eax
 0f 82 a4 01 00 00 ?? jb basic block L40

L3: 81 f9 00 01 00 00 ?? cmp ecx, 0x00000100<256>
 72 1f ?? jb basic block L7

L4: 83 3d 1c 9c 42 00 00 ?? cmp dword ds:[0x00429c1c], 0
 74 16 ?? je basic block L7

L5: 57 ?? push edi
 56 ?? push esi
 83 e7 0f ?? and edi, 15
 83 e6 0f ?? and esi, 15
 3b fe ?? cmp edi, esi
 5e ?? pop esi
 5f ?? pop edi
 75 08 ?? jne basic block L7

L6: 5e ?? pop esi
 5f ?? pop edi
 5d ?? pop ebp
 e9 49 93 00 00 ?? jmp function 0x00410100

L7: f7 c7 03 00 00 00 ?? test edi, 3
 75 15 ?? jne basic block L11

L8: c1 e9 02 ?? shr ecx, 2
 83 e2 03 ?? and edx, 3
 83 f9 08 ?? cmp ecx, 8
 72 2a ?? jb basic block L15

L9: f3 a5 ?? rep_movsd
 ff 24 95 e4 6e 40 00 ?? jmp dword ds:[0x00406ee4 + edx * 4]

L10: 90 ?? nop

L11: 8b c7 ?? mov eax, edi
 ba 03 00 00 00 ?? mov edx, 3
 83 e9 04 ?? sub ecx, 4
 72 0c ?? jb basic block L13

L12: 83 e0 03 ?? and eax, 3
 03 c8 ?? add ecx, eax
 ff 24 85 f8 6d 40 00 ?? jmp dword ds:[0x00406df8 + eax * 4]

L13: ff 24 8d f4 6e 40 00 ?? jmp dword ds:[basic block L32 + ecx * 4]

L14: 90 ?? nop

L15: ff 24 8d 78 6e 40 00 ?? jmp dword ds:[0x00406e78 + ecx * 4]

0x00406dfc: 08 6e 40 00 34 6e 40 00 58 6e 40 00 |.n@.4n@.Xn@.|

L16: 23 d1 ?? and edx, ecx
 8a 06 ?? mov al, byte ds:[esi]
 88 07 ?? mov byte ds:[edi], al
 8a 46 01 ?? mov al, byte ds:[esi + 1]
 88 47 01 ?? mov byte ds:[edi + 1], al
 8a 46 02 ?? mov al, byte ds:[esi + 2]
 c1 e9 02 ?? shr ecx, 2
 88 47 02 ?? mov byte ds:[edi + 2], al
 83 c6 03 ?? add esi, 3
 83 c7 03 ?? add edi, 3
 83 f9 08 ?? cmp ecx, 8
 72 cc ?? jb basic block L15

L17: f3 a5 ?? rep_movsd
 ff 24 95 e4 6e 40 00 ?? jmp dword ds:[0x00406ee4 + edx * 4]

L18: 8d 49 00 ?? lea ecx, ds:[ecx + 0]

L19: 23 d1 ?? and edx, ecx
 8a 06 ?? mov al, byte ds:[esi]
 88 07 ?? mov byte ds:[edi], al
 8a 46 01 ?? mov al, byte ds:[esi + 1]
 c1 e9 02 ?? shr ecx, 2
 88 47 01 ?? mov byte ds:[edi + 1], al
 83 c6 02 ?? add esi, 2
 83 c7 02 ?? add edi, 2
 83 f9 08 ?? cmp ecx, 8
 72 a6 ?? jb basic block L15

L20: f3 a5 ?? rep_movsd
 ff 24 95 e4 6e 40 00 ?? jmp dword ds:[0x00406ee4 + edx * 4]

L21: 90 ?? nop

L22: 23 d1 ?? and edx, ecx
 8a 06 ?? mov al, byte ds:[esi]
 88 07 ?? mov byte ds:[edi], al
 83 c6 01 ?? add esi, 1
 c1 e9 02 ?? shr ecx, 2
 83 c7 01 ?? add edi, 1
 83 f9 08 ?? cmp ecx, 8
 72 88 ?? jb basic block L15

L23: f3 a5 ?? rep_movsd
 ff 24 95 e4 6e 40 00 ?? jmp dword ds:[0x00406ee4 + edx * 4]

0x00406e78: db 6e 40 00 c8 6e 40 00 c0 6e 40 00 b8 6e 40 00 |.n@..n@..n@..n@.|
0x00406e88: b0 6e 40 00 a8 6e 40 00 a0 6e 40 00 98 6e 40 00 |.n@..n@..n@..n@.|

L24: 8b 44 8e e4 ?? mov eax, dword ds:[esi + ecx * 4 + 0xe4<228,-28>]
 89 44 8f e4 ?? mov dword ds:[edi + ecx * 4 + 0xe4<228,-28>], eax

L25: 8b 44 8e e8 ?? mov eax, dword ds:[esi + ecx * 4 + 0xe8<232,-24>]
 89 44 8f e8 ?? mov dword ds:[edi + ecx * 4 + 0xe8<232,-24>], eax

L26: 8b 44 8e ec ?? mov eax, dword ds:[esi + ecx * 4 + 0xec<236,-20>]
 89 44 8f ec ?? mov dword ds:[edi + ecx * 4 + 0xec<236,-20>], eax

L27: 8b 44 8e f0 ?? mov eax, dword ds:[esi + ecx * 4 + 0xf0<240,-16>]
 89 44 8f f0 ?? mov dword ds:[edi + ecx * 4 + 0xf0<240,-16>], eax

L28: 8b 44 8e f4 ?? mov eax, dword ds:[esi + ecx * 4 + 0xf4<244,-12>]
 89 44 8f f4 ?? mov dword ds:[edi + ecx * 4 + 0xf4<244,-12>], eax

L29: 8b 44 8e f8 ?? mov eax, dword ds:[esi + ecx * 4 + 0xf8<248,-8>]
 89 44 8f f8 ?? mov dword ds:[edi + ecx * 4 + 0xf8<248,-8>], eax

L30: 8b 44 8e fc ?? mov eax, dword ds:[esi + ecx * 4 + 0xfc<252,-4>]
 89 44 8f fc ?? mov dword ds:[edi + ecx * 4 + 0xfc<252,-4>], eax
 8d 04 8d 00 00 00 00 ?? lea eax, ds:[0 + ecx * 4]
 03 f0 ?? add esi, eax
 03 f8 ?? add edi, eax

L31: ff 24 95 e4 6e 40 00 ?? jmp dword ds:[0x00406ee4 + edx * 4]

0x00406ee4: f4 6e 40 00 fc 6e 40 00 08 6f 40 00 1c 6f 40 00 |.n@..n@..o@..o@.|

L32: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L33: 90 ?? nop

L34: 8a 06 ?? mov al, byte ds:[esi]
 88 07 ?? mov byte ds:[edi], al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L35: 90 ?? nop

L36: 8a 06 ?? mov al, byte ds:[esi]
 88 07 ?? mov byte ds:[edi], al
 8a 46 01 ?? mov al, byte ds:[esi + 1]
 88 47 01 ?? mov byte ds:[edi + 1], al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L37: 8d 49 00 ?? lea ecx, ds:[ecx + 0]

L38: 8a 06 ?? mov al, byte ds:[esi]
 88 07 ?? mov byte ds:[edi], al
 8a 46 01 ?? mov al, byte ds:[esi + 1]
 88 47 01 ?? mov byte ds:[edi + 1], al
 8a 46 02 ?? mov al, byte ds:[esi + 2]
 88 47 02 ?? mov byte ds:[edi + 2], al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L39: 90 ?? nop

L40: 8d 74 31 fc ?? lea esi, ds:[ecx + esi + 0xfc<252,-4>]
 8d 7c 39 fc ?? lea edi, ds:[ecx + edi + 0xfc<252,-4>]
 f7 c7 03 00 00 00 ?? test edi, 3
 75 24 ?? jne basic block L46

L41: c1 e9 02 ?? shr ecx, 2
 83 e2 03 ?? and edx, 3
 83 f9 08 ?? cmp ecx, 8
 72 0d ?? jb basic block L44

L42: fd ?? std
 f3 a5 ?? rep_movsd
 fc ?? cld
 ff 24 95 80 70 40 00 ?? jmp dword ds:[0x00407080 + edx * 4]

L43: 8b ff ?? mov edi, edi

L44: f7 d9 ?? neg ecx
 ff 24 8d 30 70 40 00 ?? jmp dword ds:[0x00407030<"wp@"> + ecx * 4]

L45: 8d 49 00 ?? lea ecx, ds:[ecx + 0]

L46: 8b c7 ?? mov eax, edi
 ba 03 00 00 00 ?? mov edx, 3
 83 f9 04 ?? cmp ecx, 4
 72 0c ?? jb basic block L48

L47: 83 e0 03 ?? and eax, 3
 2b c8 ?? sub ecx, eax
 ff 24 85 84 6f 40 00 ?? jmp dword ds:[0x00406f84 + eax * 4]

L48: ff 24 8d 80 70 40 00 ?? jmp dword ds:[0x00407080 + ecx * 4]

0x00406f88: 94 6f 40 00 b8 6f 40 00 e0 6f 40 00 |.o@..o@..o@.|

L49: 8a 46 03 ?? mov al, byte ds:[esi + 3]
 23 d1 ?? and edx, ecx
 88 47 03 ?? mov byte ds:[edi + 3], al
 83 ee 01 ?? sub esi, 1
 c1 e9 02 ?? shr ecx, 2
 83 ef 01 ?? sub edi, 1
 83 f9 08 ?? cmp ecx, 8
 72 b2 ?? jb basic block L44

L50: fd ?? std
 f3 a5 ?? rep_movsd
 fc ?? cld
 ff 24 95 80 70 40 00 ?? jmp dword ds:[0x00407080 + edx * 4]

L51: 8d 49 00 ?? lea ecx, ds:[ecx + 0]

L52: 8a 46 03 ?? mov al, byte ds:[esi + 3]
 23 d1 ?? and edx, ecx
 88 47 03 ?? mov byte ds:[edi + 3], al
 8a 46 02 ?? mov al, byte ds:[esi + 2]
 c1 e9 02 ?? shr ecx, 2
 88 47 02 ?? mov byte ds:[edi + 2], al
 83 ee 02 ?? sub esi, 2
 83 ef 02 ?? sub edi, 2
 83 f9 08 ?? cmp ecx, 8
 72 88 ?? jb basic block L44

L53: fd ?? std
 f3 a5 ?? rep_movsd
 fc ?? cld
 ff 24 95 80 70 40 00 ?? jmp dword ds:[0x00407080 + edx * 4]

L54: 90 ?? nop

L55: 8a 46 03 ?? mov al, byte ds:[esi + 3]
 23 d1 ?? and edx, ecx
 88 47 03 ?? mov byte ds:[edi + 3], al
 8a 46 02 ?? mov al, byte ds:[esi + 2]
 88 47 02 ?? mov byte ds:[edi + 2], al
 8a 46 01 ?? mov al, byte ds:[esi + 1]
 c1 e9 02 ?? shr ecx, 2
 88 47 01 ?? mov byte ds:[edi + 1], al
 83 ee 03 ?? sub esi, 3
 83 ef 03 ?? sub edi, 3
 83 f9 08 ?? cmp ecx, 8
 0f 82 56 ff ff ff ?? jb basic block L44

L56: fd ?? std
 f3 a5 ?? rep_movsd
 fc ?? cld
 ff 24 95 80 70 40 00 ?? jmp dword ds:[0x00407080 + edx * 4]

0x00407014: 34 70 40 00 3c 70 40 00 44 70 40 00 4c 70 40 00 |4p@.<p@.Dp@.Lp@.|
0x00407024: 54 70 40 00 5c 70 40 00 64 70 40 00 77 70 40 00 |Tp@.\p@.dp@.wp@.|

L57: 8b 44 8e 1c ?? mov eax, dword ds:[esi + ecx * 4 + 0x1c<28>]
 89 44 8f 1c ?? mov dword ds:[edi + ecx * 4 + 0x1c<28>], eax

L58: 8b 44 8e 18 ?? mov eax, dword ds:[esi + ecx * 4 + 0x18<24>]
 89 44 8f 18 ?? mov dword ds:[edi + ecx * 4 + 0x18<24>], eax

L59: 8b 44 8e 14 ?? mov eax, dword ds:[esi + ecx * 4 + 0x14<20>]
 89 44 8f 14 ?? mov dword ds:[edi + ecx * 4 + 0x14<20>], eax

L60: 8b 44 8e 10 ?? mov eax, dword ds:[esi + ecx * 4 + 0x10<16>]
 89 44 8f 10 ?? mov dword ds:[edi + ecx * 4 + 0x10<16>], eax

L61: 8b 44 8e 0c ?? mov eax, dword ds:[esi + ecx * 4 + 12]
 89 44 8f 0c ?? mov dword ds:[edi + ecx * 4 + 12], eax

L62: 8b 44 8e 08 ?? mov eax, dword ds:[esi + ecx * 4 + 8]
 89 44 8f 08 ?? mov dword ds:[edi + ecx * 4 + 8], eax

L63: 8b 44 8e 04 ?? mov eax, dword ds:[esi + ecx * 4 + 4]
 89 44 8f 04 ?? mov dword ds:[edi + ecx * 4 + 4], eax
 8d 04 8d 00 00 00 00 ?? lea eax, ds:[0 + ecx * 4]
 03 f0 ?? add esi, eax
 03 f8 ?? add edi, eax

L64: ff 24 95 80 70 40 00 ?? jmp dword ds:[0x00407080 + edx * 4]

0x00407080: 90 70 40 00 98 70 40 00 a8 70 40 00 bc 70 40 00 |.p@..p@..p@..p@.|

L65: 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L66: 90 ?? nop

L67: 8a 46 03 ?? mov al, byte ds:[esi + 3]
 88 47 03 ?? mov byte ds:[edi + 3], al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L68: 8d 49 00 ?? lea ecx, ds:[ecx + 0]

L69: 8a 46 03 ?? mov al, byte ds:[esi + 3]
 88 47 03 ?? mov byte ds:[edi + 3], al
 8a 46 02 ?? mov al, byte ds:[esi + 2]
 88 47 02 ?? mov byte ds:[edi + 2], al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

L70: 90 ?? nop

L71: 8a 46 03 ?? mov al, byte ds:[esi + 3]
 88 47 03 ?? mov byte ds:[edi + 3], al
 8a 46 02 ?? mov al, byte ds:[esi + 2]
 88 47 02 ?? mov byte ds:[edi + 2], al
 8a 46 01 ?? mov al, byte ds:[esi + 1]
 88 47 01 ?? mov byte ds:[edi + 1], al
 8b 45 08 ?? mov eax, dword ss:[ebp + 8]
 5e ?? pop esi
 5f ?? pop edi
 c9 ?? leave
 c3 ?? ret

