Function at 0x4110e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x600
mov esi, esp
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc8], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb0], eax
mov esp, eax
push eax
sub esp, 0x7fc
mov dword [esi + 0xa8], esp
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xcc], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0xc0], esp
sub esp, 0x10
mov dword [esi + 0xc4], esp
mov eax, dword [str.ecf1236909c49a73c6a1502a1f7614b9]
mov dword [esi + 8], eax
mov dword [esi + 0x38], 0x7b37c300
mov dword [esi + 0x3c], 0
mov dword [esi + 0x34c], 0
mov eax, dword [esi + 0x34c]
cmp eax, 7
ja 0x40f1bd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x34c]
mov edx, dword [esi + 0x34c]
movzx edx, byte [esi + edx + 0x38]
lea edi, [eax + 0x139d6a4f]
mov ebx, 0xec6295b0
sub ebx, eax
or ebx, edx
lea ecx, [eax + edx]
add ecx, 0x139d6a4f
add eax, edx
not edx
or edx, edi
add eax, edx
add eax, ebx
add eax, 0x139d6a51
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x140]
add al, 0xd7
mov ecx, dword [esi + 0x34c]
mov byte [esi + ecx + 0x38], al
inc dword [esi + 0x34c]
mov eax, dword [esi + 0x34c]
cmp eax, 8
jb 0x40f150
mov edx, dword [str.MhMcwl__DEXTER]
mov dword [esi + 0x140], 0x88c0b0b1
mov dword [esi + 0x144], 0xd0add2dc
mov dword [esi + 0x148], 0xd0add6c4
mov dword [esi + 0x14c], 0xa0d5d4d9
mov dword [esi + 0x150], 0xf19ededf
mov dword [esi + 0x154], 0xabbbefe1
mov dword [esi + 0x158], 0xefa6adac
mov dword [esi + 0x15c], 0x77b395ed
mov dword [esi + 0x160], 0
mov byte [esi + 0x164], 0
mov dword [esi + 0xd8], 0
mov eax, dword [esi + 0xd8]
cmp eax, 0x24
ja 0x40f29a
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xd8]
movzx ecx, byte [esi + ecx + 0x140]
mov edi, eax
and edi, 0x1adb228d
xor eax, 0x1adb228d
lea eax, [eax + edi*2]
mov edi, eax
and edi, ecx
add eax, ecx
add edi, edi
sub eax, edi
mov dword [esi + 0x34c], eax
mov eax, dword [esi + 0x34c]
add al, 0x25
mov ecx, dword [esi + 0xd8]
mov byte [esi + ecx + 0x140], al
inc dword [esi + 0xd8]
mov eax, dword [esi + 0xd8]
cmp eax, 0x25
jb 0x40f240
movzx ebx, byte [esi + 0x140]
lea eax, [esi + 0x34c]
test bl, bl
je 0x40f2cb
lea edi, [esi + 0x141]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x40f2c0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
mov ecx, dword [esi + 8]
je 0x40f2eb
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f2e0
mov byte [eax], 0
movzx edx, byte [esi + 0x38]
test dl, dl
je 0x40f30b
lea edi, [esi + 0x39]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40f300
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f32b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f320
mov byte [eax], 0
mov dword [esi + 0x140], 0x338d31f3
mov dword [esi + 0x144], 0x3782358a
mov dword [esi + 0x148], 0xbb409ad
mov dword [esi + 0x14c], 0xff30db8
mov dword [esi + 0x150], 0x38b01d4
mov dword [esi + 0x154], 0x7a305b4
mov dword [esi + 0x158], 0x1bfa19d2
mov dword [esi + 0x15c], 0x1fae1dbd
mov dword [esi + 0x160], 0x13ae11a0
mov dword [esi + 0x164], 0x17b515ad
mov dword [esi + 0x168], 0xeb5ee949
mov dword [esi + 0x16c], 0xef51ed55
mov dword [esi + 0x170], 0xe31de15e
mov dword [esi + 0x174], 0xe71be56c
mov dword [esi + 0x178], 0xfb4df94f
mov dword [esi + 0x17c], 0xff03fd4b
mov dword [esi + 0x180], 0xf34df156
mov dword [esi + 0x184], 0xf74bf546
mov dword [esi + 0x188], 0xcb7fc935
mov dword [esi + 0x18c], 0xcf72cd7e
mov dword [esi + 0x190], 0xc37cc165
mov dword [esi + 0x194], 0xc779c567
mov dword [esi + 0x198], 0xdb7fd97c
mov dword [esi + 0x19c], 0xdfc3dd78
mov dword [esi + 0x1a0], 0xd3d2d1ca
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1a4], 0
mov dword [esi + 0xd8], 0
mov ecx, dword [esi + 0xd8]
cmp ecx, 0x6b
ja 0x40f4aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0xd8]
mov edx, dword [esi + 0xd8]
movzx edx, byte [esi + edx + 0x140]
lea edi, [ecx - 0x108454a8]
add ecx, 0x58
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x38], edi
mov ecx, dword [esi + 0x38]
add cl, 0x98
mov edx, dword [esi + 0xd8]
mov byte [esi + edx + 0x140], cl
inc dword [esi + 0xd8]
mov ecx, dword [esi + 0xd8]
cmp ecx, 0x6c
jb 0x40f460
mov dword [esi + 0x38], 0x43e34d1f
mov dword [esi + 0x3c], 0x47df41d0
mov word [esi + 0x40], 0x4544
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov dword [esi + 0x3f0], 0
mov ecx, dword [esi + 0x3f0]
cmp ecx, 0x15
ja 0x40f54b
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x3f0]
mov edx, dword [esi + 0x3f0]
movzx edi, byte [esi + edx + 0x38]
lea edx, [ecx + 0x42695276]
add ecx, 0x76
or ecx, edx
and ecx, edi
or edx, edi
sub edx, ecx
mov dword [esi + 0xd8], edx
mov ecx, dword [esi + 0xd8]
mov edx, ecx
or edx, 0xc5
and ecx, 0xc5
add ecx, edx
inc cl
mov edx, dword [esi + 0x3f0]
mov byte [esi + edx + 0x38], cl
inc dword [esi + 0x3f0]
mov ecx, dword [esi + 0x3f0]
cmp ecx, 0x16
jb 0x40f4f0
lea ecx, [esi + 0x34c]
mov edx, ecx
not edx
and edx, eax
add edx, edx
xor eax, ecx
sub edx, eax
lea ebx, [esi + 0x140]
lea eax, [esi + 0x38]
lea edi, [esi + 0xd4]
push edi
lea edi, [esi + 0xb4]
push edi
push edx
push ecx
push ebx
push eax
push 0x4476cc
call fcn.0040c670
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x442778]
xor edi, edi
xor ecx, ecx
test edi, edi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442780]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esi + 0xd4]
mov edi, dword [esi + 0xb4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40f5ce
cmp edx, 0x2e
jne 0x40f5cf
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
mov dword [esi + 8], edi
je 0x40f5e1
cmp ecx, 0x2e
jne 0x40f5e2
dec eax
push eax
call fcn.00408c90
add esp, 4
mov edi, eax
push eax
push dword [esi + 8]
call fcn.004344c0
add esp, 8
push dword [esi + 0xb4]
call fcn.00437830
add esp, 4
xor ecx, ecx
test edi, edi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x442780]
mov dword [esi + 8], ecx
push edi
call fcn.00401e90
add esp, 4
mov ecx, dword [esi + 8]
jmp dword [ecx*4 + 0x442788]
push edi
mov edi, eax
call fcn.00408ca0
mov eax, edi
add esp, 4
mov dword [esi + 0xc], eax
push eax
call fcn.00402770
add esp, 4
mov dword [esi + 8], eax
mov word [esi + 0x140], 0xf6fc
mov byte [esi + 0x142], 0x64
mov dword [esi + 0x143], 0
mov dword [esi + 0x147], 0
mov byte [esi + 0x14b], 0
mov dword [esi + 0xd8], 0
mov eax, dword [esi + 0xd8]
cmp eax, 0xb
ja 0x40f6ee
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xd8]
movzx ecx, byte [esi + ecx + 0x140]
lea edx, [eax + 0xb023cf1]
mov edi, edx
and edi, ecx
xor edx, ecx
lea edx, [edx + edi*2]
add eax, 0xf1
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x38], edx
mov eax, dword [esi + 0x38]
mov ecx, eax
or ecx, 0x68
and eax, 0x68
add eax, ecx
inc al
mov ecx, dword [esi + 0xd8]
mov byte [esi + ecx + 0x140], al
inc dword [esi + 0xd8]
mov eax, dword [esi + 0xd8]
cmp eax, 0xc
jb 0x40f690
push ebx
push dword [esi + 8]
call fcn.004027f0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x442790]
call fcn.00432e00
movzx eax, al
jmp dword [eax*4 + 0x442798]
mov word [esi + 0x140], 0x3d05
mov byte [esi + 0x142], 0xa0
mov dword [esi + 0x143], 0
mov dword [esi + 0x147], 0
mov dword [esi + 0x14a], 0
mov dword [esi + 0xd8], 0
mov eax, dword [esi + 0xd8]
cmp eax, 0xd
ja 0x40f7ad
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xd8]
movzx ecx, byte [esi + ecx + 0x140]
lea edx, [eax + 0x9b]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xc3f4ce9b
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
add al, 0xc3
mov ecx, dword [esi + 0xd8]
mov byte [esi + ecx + 0x140], al
inc dword [esi + 0xd8]
mov eax, dword [esi + 0xd8]
cmp eax, 0xe
jb 0x40f760
push ebx
push dword [esi + 8]
call fcn.004027f0
add esp, 8
mov dword [esi + 0xbc], eax
mov word [esi + 0x140], 0xe13
mov byte [esi + 0x142], 0xa4
mov dword [esi + 0x143], 0
mov word [esi + 0x147], 0
mov dword [esi + 0xd8], 0
mov eax, dword [esi + 0xd8]
cmp eax, 8
ja 0x40f85c
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0xd8]
mov ecx, dword [esi + 0xd8]
movzx ecx, byte [esi + ecx + 0x140]
lea edx, [eax + 0x45]
mov edi, 0xba
sub edi, eax
and edi, edx
lea edx, [eax + 0x180cac45]
and edx, ecx
and edi, ecx
add eax, ecx
add eax, 0x180cac45
lea ecx, [edi + edx*2]
sub eax, ecx
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
add al, 0x1d
mov ecx, dword [esi + 0xd8]
mov byte [esi + ecx + 0x140], al
inc dword [esi + 0xd8]
mov eax, dword [esi + 0xd8]
cmp eax, 9
jb 0x40f800
push ebx
mov edi, dword [esi + 8]
push edi
call fcn.004027f0
add esp, 8
mov dword [esi + 0xb8], eax
push edi
call fcn.00410410
add esp, 4
push dword [esi + 0xc]
call fcn.00402a00
add esp, 4
lea edi, [esi + 0xd8]
mov ecx, edi
push 1
call fcn.004094e0
push edi
call fcn.0041e070
add esp, 4
mov ecx, edi
call fcn.00409e70
lea edi, [esi + 0x3f0]
mov ecx, edi
push 3
call fcn.004094e0
push edi
call fcn.0041e840
add esp, 4
mov ecx, edi
call fcn.00409e70
lea edi, [esi + 0x590]
mov ecx, edi
push 1
call fcn.004094e0
push edi
call fcn.0041eb90
add esp, 4
mov ecx, edi
call fcn.00409e70
xor eax, eax
cmp dword [esi + 0xb8], 0
setg al
mov dword [esi + 0xc], eax
lea edi, [esi + 0x528]
mov ecx, edi
push 1
call fcn.004094e0
push edi
call fcn.004209c0
add esp, 4
push edi
call fcn.00421620
add esp, 4
push edi
call fcn.00421ac0
add esp, 4
mov ecx, edi
call fcn.00409e70
lea edi, [esi + 0x4c0]
mov ecx, edi
push 1
call fcn.004094e0
push edi
call fcn.00423a90
add esp, 4
mov ecx, edi
call fcn.00409e70
lea edi, [esi + 0x458]
mov ecx, edi
push 1
call fcn.004094e0
push edi
call fcn.00425bf0
add esp, 4
push edi
call fcn.0042dc50
add esp, 4
mov eax, dword [esi + 0xc]
jmp dword [eax*4 + 0x4427a0]
jmp dword [0x4427a8]
push dword [esi + 0xc]
call fcn.00402a00
add esp, 4
xor eax, eax
jmp 0x4103c3
push 0
call fcn.0043af20
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4427f0]
mov dword [ebx], 0xeba7d5b3
mov dword [ebx + 4], 0xefdae98e
mov dword [ebx + 8], 0xe364ed95
mov dword [ebx + 0xc], 0xe7c0e199
mov dword [ebx + 0x10], 0xfb91e5c0
mov dword [ebx + 0x14], 0xff9ff98e
mov dword [ebx + 0x18], 0xf388fd88
mov dword [ebx + 0x1c], 0xf7c1f1d2
mov dword [ebx + 0x20], 0xb8bf585
mov dword [ebx + 0x24], 0xf280978
mov dword [ebx + 0x28], 0x37f0d6b
mov dword [ebx + 0x2c], 0x7320166
mov dword [ebx + 0x30], 0x1b8c057d
mov dword [ebx + 0x34], 0x1f381961
mov dword [ebx + 0x38], 0x132d1d38
mov dword [ebx + 0x3c], 0x17301177
mov dword [ebx + 0x40], 0x2b6b1562
mov dword [ebx + 0x44], 0x2f532959
mov dword [ebx + 0x48], 0x23a72d5f
mov dword [ebx + 0x4c], 0x27002156
mov dword [ebx + 0x50], 0x3b502517
mov dword [ebx + 0x54], 0x3f0d391a
mov dword [ebx + 0x58], 0x330d3d1e
mov dword [ebx + 0x5c], 0x37413140
mov dword [ebx + 0x60], 0x4b423550
mov dword [ebx + 0x64], 0x4f2f4931
mov dword [ebx + 0x68], 0x436c4d33
mov dword [ebx + 0x6c], 0x47604178
mov dword [ebx + 0x70], 0x5b3f4522
mov dword [ebx + 0x74], 0x5f785926
mov dword [ebx + 0x78], 0x535c5d78
mov dword [ebx + 0x84], 0
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x7c], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 0x87
ja 0x40fae9
nop
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
movzx edi, byte [ebx + edx]
lea edx, [ecx + 0x50926edd]
add ecx, 0xdd
or ecx, edx
and ecx, edi
or edx, edi
sub edx, ecx
mov dword [esi + 0x38], edx
mov ecx, dword [esi + 0x38]
add cl, 0xf5
mov edx, dword [esi + 0x10]
mov byte [ebx + edx], cl
mov ecx, dword [esi + 0x10]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
cmp ecx, 0x88
jb 0x40faa0
movzx edx, word [ebx]
mov edi, dword [esi + 0xa8]
mov ecx, edi
test dx, dx
je 0x40fb11
add ebx, 2
mov ecx, edi
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [ebx]
add ebx, 2
test dx, dx
jne 0x40fb00
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x40fb41
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x40fb30
mov word [ecx], 0
jmp dword [0x4427fc]
mov dword [ecx], 0x220022
mov word [ecx + 4], 0x22
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [ecx], 0x220022
mov word [ecx + 4], 0x22
jmp dword [0x442804]
mov word [ecx + 6], 0
mov ebx, dword [esi + 0xc0]
mov dword [ebx + 0x40], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x34], 0
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x1c], 0
mov dword [ebx + 0x18], 0
mov dword [ebx + 0x14], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0x44
mov dword [ebx + 0x2c], 1
push 0x89047569
push dword [0x4489d4]
call fcn.0043b080
add esp, 8
mov edi, dword [esi + 0xc4]
push edi
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0xa8]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442808]
jmp case.0x410378.0
mov eax, dword [edi]
mov dword [esi + 0x38], 0xaaa5a4a7
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov word [esi + 0x44], 0
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x28]
cmp ecx, 0xd
ja 0x40fcab
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x28]
movzx edi, byte [esi + edx + 0x38]
lea edx, [ecx + edi]
add ecx, 0xc5
and ecx, edi
add ecx, ecx
sub edx, ecx
add edx, 0x9de9b2c5
mov dword [esi + 0x10], edx
mov ecx, dword [esi + 0x10]
add cl, 0x9d
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 0x38], cl
inc dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
cmp ecx, 0xe
jb 0x40fc70
mov ecx, dword [0x4489e0]
test ecx, ecx
je case.0x410378.0
mov edx, dword [esi + 0x38]
xor edi, edi
mov ebx, dword [0x4489e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x40fce3
inc edi
cmp ecx, edi
jne 0x40fcd0
jmp case.0x410378.0
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x410378.0
push eax
push 1
push dword [0x4489e8]
push ecx
call fcn.00439450
add esp, 0x10
jmp case.0x410378.0
mov ebx, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x4427d8]
push edi
call fcn.00408ca0
add esp, 4
push ebx
call fcn.00413700
add esp, 4
push ebx
call fcn.00402a00
add esp, 4
jmp case.0x4101fd.0
xor edi, edi
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4427c0]
jmp dword [0x4427cc]
lea ecx, [esi + 0x458]
call fcn.00409e70
lea eax, [esi + 0x3cf]
push eax
call fcn.00433e10
add esp, 4
mov dword [esi + 0x10], 0x322531f6
mov word [esi + 0x14], 0xa048
mov byte [esi + 0x16], 0xe6
mov dword [esi + 0x17], 0
mov word [esi + 0x1b], 0
mov dword [esi + 0x38], 0
mov eax, dword [esi + 0x38]
cmp eax, 0xc
ja 0x40fdef
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x38]
mov eax, dword [esi + 0x38]
movzx edi, byte [esi + eax + 0x10]
lea eax, [edx + 0x4f4e863c]
lea ecx, [edx + edi]
add ecx, 0x4f4e863c
add edx, 0x3c
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0x140]
add al, 0x5c
mov ecx, dword [esi + 0x38]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 0x38]
mov eax, dword [esi + 0x38]
cmp eax, 0xd
jb 0x40fda0
mov eax, dword [str.ecf1236909c49a73c6a1502a1f7614b9]
mov dword [esi + 0xc], eax
mov dword [esi + 0x28], 0xabef3bc6
mov dword [esi + 0x2c], 0
mov word [esi + 0x30], 0
mov dword [esi + 0x38], 0
mov ecx, dword [esi + 0x38]
cmp ecx, 9
ja 0x40fe60
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x38]
movzx edx, byte [esi + edx + 0x28]
lea edi, [ecx - 0x79993066]
and edi, edx
add ecx, edx
add ecx, 0x8666cf9a
add edi, edi
sub ecx, edi
mov dword [esi + 0x140], ecx
mov ecx, dword [esi + 0x140]
add cl, 0xca
mov edx, dword [esi + 0x38]
mov byte [esi + edx + 0x28], cl
inc dword [esi + 0x38]
mov ecx, dword [esi + 0x38]
cmp ecx, 0xa
jb 0x40fe20
mov ecx, dword [str.MhMcwl__DEXTER]
mov dword [esi + 0x38], 0x7e261211
mov dword [esi + 0x3c], 0x18221013
mov dword [esi + 0x40], 0x38390c35
mov dword [esi + 0x44], 0x490b0a0d
mov dword [esi + 0x48], 0x6e300436
mov dword [esi + 0x4c], 0x41767b70
mov dword [esi + 0x50], 0x563e0004
mov byte [esi + 0x54], 0x9c
mov dword [esi + 0x59], 0
mov dword [esi + 0x55], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0x24
ja 0x40ff04
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [esi + edi + 0x38]
mov eax, edx
and eax, 0xc56f6548
xor edx, 0x456f6548
lea eax, [edx + eax*2]
lea edx, [eax + edi]
and eax, edi
add eax, eax
sub edx, eax
mov dword [esi + 0x140], edx
mov eax, dword [esi + 0x140]
add al, 8
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x38], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x25
jb 0x40fec0
movzx edx, byte [esi + 0x38]
test dl, dl
je 0x40ff2b
lea ebx, [esi + 0x140]
lea edi, [esi + 0x39]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40ff20
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40ff4d
inc ecx
mov eax, dword [esi + 0xc]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40ff40
jmp 0x40ff50
mov eax, dword [esi + 0xc]
mov byte [ebx], 0
movzx ecx, byte [esi + 0x28]
test cl, cl
je 0x40ff6b
lea edx, [esi + 0x29]
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40ff60
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40ff8b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40ff80
mov byte [ebx], 0
movzx eax, byte [esi + 0x10]
test al, al
je 0x40ffab
lea ecx, [esi + 0x11]
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ffa0
mov byte [ebx], 0
movzx eax, byte [esi + 0x3cf]
test al, al
je 0x40ffcb
lea ecx, [esi + 0x3d0]
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40ffc0
mov byte [ebx], 0
lea eax, [esi + 0x140]
mov dword [esi + 0x38], 0x63f565ab
mov dword [esi + 0x3c], 0x6ffc61f0
mov dword [esi + 0x40], 0x6bfe6d85
mov dword [esi + 0x44], 0x17bb69f6
mov dword [esi + 0x48], 0x139315ea
mov dword [esi + 0x4c], 0x1ffb1182
mov dword [esi + 0x50], 0x1b3c1dd8
mov dword [esi + 0x54], 0x78819f5
mov dword [esi + 0x58], 0x3900596
mov dword [esi + 0x5c], 0xfed0195
mov dword [esi + 0x60], 0xb900de1
mov dword [esi + 0x64], 0x3799099d
mov dword [esi + 0x68], 0x33e535a4
mov dword [esi + 0x6c], 0x3fe331aa
mov dword [esi + 0x70], 0x3ba53da7
mov dword [esi + 0x74], 0x27eb39a3
mov dword [esi + 0x78], 0x23b525cc
mov dword [esi + 0x7c], 0x2fb321bc
mov dword [esi + 0x80], 0x2bb72dfd
mov dword [esi + 0x84], 0xd7bc29b4
mov dword [esi + 0x88], 0xd346d53d
mov dword [esi + 0x8c], 0xdf41d13f
mov dword [esi + 0x90], 0xdb37dd32
mov dword [esi + 0x94], 0xc7ebd936
mov dword [esi + 0x98], 0xc3c4c5f0
mov byte [esi + 0xa0], 0
mov dword [esi + 0x9c], 0
mov dword [esi + 0x28], 0
mov ecx, dword [esi + 0x28]
cmp ecx, 0x68
ja 0x410105
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x28]
movzx edx, byte [esi + edx + 0x38]
lea edi, [ecx + edx]
add edi, 0xd16abdb1
add ecx, 0xd16abdb1
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0x10], edi
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor edx, 0x28
and ecx, 0x28
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 0x28]
mov byte [esi + edx + 0x38], cl
inc dword [esi + 0x28]
mov ecx, dword [esi + 0x28]
cmp ecx, 0x69
jb 0x4100c0
sub ebx, eax
mov dword [esi + 0x10], 0xbab0d7f
mov dword [esi + 0x14], 0x17bf09b8
mov word [esi + 0x18], 0x1514
mov dword [esi + 0x1a], 0
mov dword [esi + 0x1e], 0
mov byte [esi + 0x22], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x12
ja 0x41017b
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [esi + edx + 0x10]
lea edi, [ecx + edx]
add edi, 0xdb68972a
add ecx, 0xdb68972a
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 0x28], edi
mov ecx, dword [esi + 0x28]
add cl, 0xda
mov edx, dword [esi + 4]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x13
jb 0x410140
lea ecx, [esi + 0xd0]
lea edx, [esi + 4]
lea edi, [esi + 0x10]
push ecx
push edx
push ebx
push eax
lea eax, [esi + 0x38]
push eax
push edi
push 0x4476cc
call fcn.0040c670
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4427b8]
mov ecx, dword [esi + 0xd0]
mov ebx, dword [esi + 4]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + ebx - 1]
cmp edx, 0x3d
je 0x4101c5
cmp edx, 0x2e
jne 0x4101c6
dec eax
movzx ecx, byte [ecx + ebx - 2]
cmp ecx, 0x3d
je 0x4101d5
cmp ecx, 0x2e
jne 0x4101d6
dec eax
push eax
call fcn.00408c90
add esp, 4
mov edi, eax
push eax
push ebx
call fcn.004344c0
add esp, 8
push dword [esi + 4]
call fcn.00437830
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x4427c0]
mov ebx, dword [esi + 0xc8]
mov dword [ebx], 0x8b212320
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov byte [ebx + 0xc], 0
mov dword [esi + 0x10], 0
mov eax, dword [esi + 0x10]
cmp eax, 0xc
ja 0x410287
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x10]
movzx edi, byte [ebx + eax]
lea eax, [edx - 0x312eb996]
lea ecx, [edx + edi]
add ecx, 0xced1466a
add edx, 0x6a
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x38], eax
mov eax, dword [esi + 0x38]
add al, 0x1a
mov ecx, dword [esi + 0x10]
mov byte [ebx + ecx], al
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, 0xd
jb 0x410240
push ebx
push dword [esi + 8]
call fcn.004027f0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov ebx, dword [esi + 0xcc]
jmp dword [ecx*4 + 0x4427e0]
mov ecx, dword [esi + 0xac]
push 1
call fcn.004094e0
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x4479d5], 0
lea eax, [eax + 1]
jne 0x4102c0
mov edi, dword [esi + 0xb0]
mov dword [edi], 0x382a2e0a
mov dword [edi + 4], 0x273c632b
mov word [edi + 8], 0xad22
mov dword [edi + 0xa], 0
mov word [edi + 0xe], 0
mov dword [esi + 0x10], 0
mov ecx, dword [esi + 0x10]
cmp ecx, 0xf
ja 0x410348
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 0x10]
movzx edx, byte [edi + edx]
lea edi, [ecx - 0x6b7586b7]
add ecx, 0x49
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x38], edi
mov edi, dword [esi + 0xb0]
mov ecx, dword [esi + 0x38]
inc cl
mov edx, dword [esi + 0x10]
mov byte [edi + edx], cl
inc dword [esi + 0x10]
mov ecx, dword [esi + 0x10]
cmp ecx, 0x10
jb 0x410310
mov edx, edi
mov edi, dword [esi + 0xac]
mov ecx, edi
push eax
push 0x4479d4
push edx
call fcn.004096e0
mov ecx, edi
call fcn.00409e70
mov ecx, edi
call fcn.00409520
xor eax, eax
cmp dword [esi + 0xbc], 0
setg al
jmp dword [eax*4 + 0x4427e8]
lea ecx, [esi + 0x458]
call fcn.00409520
lea ecx, [esi + 0x4c0]
call fcn.00409520
lea ecx, [esi + 0x528]
call fcn.00409520
lea ecx, [esi + 0x590]
call fcn.00409520
lea ecx, [esi + 0x3f0]
call fcn.00409520
lea ecx, [esi + 0xd8]
call fcn.00409520
mov al, 1
mov ecx, dword [case.0x40f610.1]
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push edi
call fcn.00401e90
add esp, 4
push edi
call fcn.00401e90
add esp, 4
jmp dword [0x4427d0]
push edi
call fcn.0042de40
add esp, 4
push edi
call fcn.0042de40
add esp, 4
jmp dword [0x4427b0]
xor ebx, ebx
mov dword [esp + 0x30], esi
jmp 0x4104e1
mov ecx, edi
call fcn.00409520
nop
nop
nop
nop
nop
nop
inc ebx
push esi
call fcn.004029c0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x442828]
push ebx
push esi
call fcn.004029d0
add esp, 8
mov dword [esp + 4], eax
mov word [esp + 0x58], 0xd954
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov word [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xb
ja 0x410594
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x3e184da4
add eax, 0x3e184da4
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0x83
and eax, 3
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xc
jb 0x410540
push 3
push edi
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442830]
mov word [esp + 0x58], 0x1994
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 8
ja 0x410625
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xd4]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x1de4f3d4
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x34
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 9
jb 0x4105e0
push edi
push dword [esp + 8]
call fcn.00402720
add esp, 8
fnstcw word [esp + 0xe2]
movzx eax, word [esp + 0xe2]
or eax, 0xc00
mov word [esp + 0x146], ax
fldcw word [esp + 0x146]
fistp dword [esp + 0x160]
fldcw word [esp + 0xe2]
mov eax, dword [esp + 0x160]
xor ecx, ecx
cmp eax, 2
setl cl
mov dword [esp + 0x34], ebx
jmp dword [ecx*4 + 0x442838]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x442840]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442848]
mov word [esp + 0x58], 0x117f
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov word [esp + 0x66], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xf
ja 0x410716
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0x87dd1003
add eax, 0x87dd1003
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xeb
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x10
jb case.default.0x41072e
push 2
push edi
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x4428d0]
mov word [esp + 0xc0], 0x31a0
mov dword [esp + 0xc2], 0
mov word [esp + 0xc6], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 7
ja 0x4107b5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0xc0]
lea edx, [eax + 0xa8]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x2e054ea8
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x68
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 8
jb 0x410770
push 2
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4428d8]
mov word [esp + 0xe8], 0x4db9
mov dword [esp + 0xea], 0
mov dword [esp + 0xee], 0
mov dword [esp + 0xf2], 0
mov byte [esp + 0xf6], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0xe
ja 0x410876
nop
nop
nop
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x24]
movzx esi, byte [esp + eax + 0xe8]
lea eax, [edx - 0x5e40f0f6]
lea ecx, [edx + esi]
add ecx, 0xa1bf0f0a
add edx, 0xa
and edx, esi
and eax, esi
add eax, edx
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xba
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jb 0x410820
push 5
lea eax, [esp + 0xec]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x30]
jmp dword [ecx*4 + 0x4428e0]
mov word [esp + 8], 0xc17a
mov dword [esp + 0xa], 0
mov dword [esp + 0xe], 0
mov dword [esp + 0x11], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 0xc
ja 0x41090d
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax - 0x45bc4c60]
add eax, 0xa0
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x20]
add al, 0xa0
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 0xd
jb 0x4108d0
push 2
lea eax, [esp + 0xc]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4428e8]
mov word [esp + 0x40], 0x6d88
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 7
ja 0x4109a2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x2e]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x3a43f62d
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xbe
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 8
jb 0x410960
push 3
lea eax, [esp + 0x44]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0x30]
jmp dword [ecx*4 + 0x4428f0]
movzx eax, bl
mov ebx, dword [esp + 0x34]
jmp dword [eax*4 + 0x4428f8]
mov word [esp + 0x58], 0x56f
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x410a55
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x339e307f]
and edx, ecx
add eax, ecx
add eax, 0xcc61cf81
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x79
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x410a10
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x58], 0xad5c
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xc
ja 0x410af4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xba5b5ce6
add eax, 0xba5b5ce6
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0xb5
and eax, 0x35
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xd
jb 0x410aa0
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x58], 0x1181
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 8
ja 0x410b80
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx edx, byte [esp + ecx + 0x58]
lea ecx, [eax + edx]
add ecx, 0x45a9fa83
add eax, 0x45a9fa83
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x6b
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 9
jb 0x410b30
push edi
push dword [esp + 8]
call fcn.00402790
add esp, 8
mov esi, eax
mov word [esp + 0x58], 0xb90c
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x61], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xc
ja 0x410c05
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x92ffce9]
and edx, ecx
add eax, ecx
add eax, 0xf6d00317
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x5f
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xd
jb 0x410bc0
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0xd8], eax
mov word [esp + 0x58], 0x45e2
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x410ca3
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add eax, 0x75
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xc156ae75
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0xcc
and eax, 0xcc
add eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x410c50
mov dword [esp + 0x38], esi
push edi
push dword [esp + 8]
call fcn.00402720
add esp, 8
fnstcw word [esp + 0xe0]
movzx eax, word [esp + 0xe0]
or eax, 0xc00
mov word [esp + 0x144], ax
fldcw word [esp + 0x144]
fistp dword [esp + 0x154]
fldcw word [esp + 0xe0]
mov eax, dword [esp + 0x154]
mov dword [esp + 0x2c], eax
mov word [esp + 0x58], 0xe2f6
mov byte [esp + 0x5a], 0x6a
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x410d80
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xf6c028b2
add eax, 0xf6c028b2
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0x21
and eax, 0x21
add eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x410d30
push edi
push dword [esp + 8]
call fcn.00402720
add esp, 8
mov ebx, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x410da0
fnstcw word [esp + 0xde]
movzx ecx, word [esp + 0xde]
or ecx, 0xc00
mov word [esp + 0x142], cx
fldcw word [esp + 0x142]
fistp dword [esp + 0x150]
fldcw word [esp + 0xde]
mov ecx, dword [esp + 0x150]
mov dword [esp + 0x50], ecx
lea esi, [eax - 1]
lea ecx, [ebx + 2]
test eax, eax
jns 0x410df8
mov ecx, 0xffffffff
push ecx
call fcn.00408c90
add esp, 4
mov edx, eax
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x410e29
mov esi, ecx
not esi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc esi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x410e20
mov dword [esp + 0x58], 0
add ebx, edx
mov edi, edx
mov dword [esp + 0x18], edx
cmp ebx, edx
jbe 0x410e91
mov edi, dword [esp + 0x18]
test esi, esi
jle 0x410e91
mov edx, ecx
add edx, esi
mov edi, dword [esp + 0x18]
mov dword [esp + 4], edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x410e91
lea eax, [esp + 0x58]
push eax
push edx
push ecx
mov esi, ecx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, ebx
jae 0x410e91
add esi, eax
mov edx, dword [esp + 4]
cmp esi, edx
mov ecx, esi
jb 0x410e60
mov word [edi], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea ecx, [esp + 0xe8]
mov esi, dword [esp + 0x18]
push esi
call fcn.00437910
jmp dword [0x442900]
push esi
call fcn.00408ca0
add esp, 4
lea ecx, [esp + 0xe8]
push 0x400
call fcn.00437b60
not eax
shr eax, 0x1f
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp dword [eax*4 + 0x442908]
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x58], 0xaaa5a4a7
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov word [esp + 0x64], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0xd
ja 0x410f9f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
movzx edx, byte [esp + edx + 0x58]
lea esi, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub esi, eax
add esi, 0x9de9b2c5
mov dword [esp + 8], esi
mov eax, dword [esp + 8]
add al, 0x9d
mov edx, dword [esp + 0xc0]
mov byte [esp + edx + 0x58], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xe
jb 0x410f50
mov eax, dword [esp + 0x58]
mov edx, dword [0x4489e0]
test edx, edx
je 0x410fd6
xor esi, esi
mov edi, dword [0x4489e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x68655b54
je 0x412332
inc esi
cmp edx, esi
jne case.default.0x410fe4
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x30]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x442910]
mov eax, dword [esp + 0x40]
add eax, 2
push eax
call fcn.00437740
add esp, 4
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x40]
add eax, 2
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x58], 0xaaa5a4a7
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov word [esp + 0x64], 0
mov dword [esp + 0xc0], 0
mov edx, dword [esp + 0xc0]
cmp edx, 0xd
ja 0x4110a1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xc0]
mov esi, dword [esp + 0xc0]
movzx esi, byte [esp + esi + 0x58]
lea edi, [edx + esi]
add edx, 0xc5
and edx, esi
add edx, edx
sub edi, edx
add edi, 0x9de9b2c5
mov dword [esp + 8], edi
mov edx, dword [esp + 8]
add dl, 0x9d
mov esi, dword [esp + 0xc0]
mov byte [esp + esi + 0x58], dl
inc dword [esp + 0xc0]
mov edx, dword [esp + 0xc0]
cmp edx, 0xe
jb 0x411050
mov edx, dword [esp + 0x58]
mov esi, dword [0x4489e0]
test esi, esi
je case.default.0x412e8a
xor edi, edi
mov ebx, dword [0x4489e4]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x68655b54
je 0x412d1a
inc edi
cmp esi, edi
jne 0x4110c0
jmp case.default.0x412e8a
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x442850]
mov word [esp + 0x58], 0x170
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 8
ja 0x411159
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
add eax, 0x1937880
xor eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x80
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 9
jb 0x411120
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x58], 0x2558
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov byte [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xa
ja 0x4111eb
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x4e985ea5]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x4e985ea4
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x7d
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xb
jb 0x4111a0
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x1c]
test edx, edx
sete cl
mov esi, dword [esp + 0x30]
jmp dword [ecx*4 + 0x4429b8]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4429c0]
mov ecx, edx
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x411220
mov dword [esp + 0x18], eax
mov eax, ebx
sub eax, edx
xor esi, esi
mov dword [esp + 0x38], eax
test eax, eax
jle 0x411277
cmp byte [edx], 0
je 0x411277
xor esi, esi
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push ebx
push edi
call fcn.0040ef00
add esp, 0xc
lea ecx, [edi + eax]
inc esi
cmp ecx, ebx
jae 0x411277
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411250
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x411285
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 4], ecx
cmp ecx, eax
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
jbe 0x412435
mov esi, eax
cmp dword [esp + 0x38], 0
jle 0x412435
mov esi, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412435
lea eax, [esp + 0x58]
push eax
push ebx
push edi
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 4]
jae 0x412431
add edi, eax
cmp edi, ebx
mov ecx, dword [esp + 0x18]
jb 0x4112d0
jmp 0x412435
mov word [esp + 0x58], 0x9908
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov byte [esp + 0x66], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xe
ja 0x411396
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xec546ec
add eax, 0xec546ec
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x8c
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xf
jb 0x411350
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x58], 0x59c2
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov byte [esp + 0x66], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xe
ja 0x411430
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x49ff8c]
add eax, 0x8c
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0x2b
and eax, 0x2b
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xf
jb 0x4113e0
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
xor ecx, ecx
mov edx, dword [esp + 0x18]
test edx, edx
sete cl
jmp dword [ecx*4 + 0x442a58]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a60]
mov dword [esp + 0x1c], eax
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411470
mov eax, ebx
sub eax, edx
xor edi, edi
mov dword [esp + 0x38], eax
test eax, eax
jle 0x4114c7
cmp byte [edx], 0
je 0x4114c7
xor edi, edi
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push ebx
push esi
call fcn.0040ef00
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x4114c7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4114a0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4114d5
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 4], ecx
cmp ecx, eax
mov esi, dword [esp + 0x18]
jbe 0x41153b
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x38], 0
jle 0x41153b
mov edi, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x41153b
lea eax, [esp + 0x58]
push eax
push ebx
push esi
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 4]
jae 0x41153b
add esi, eax
cmp esi, ebx
jb 0x411510
mov word [edi], 0
mov edi, 0xfffffffe
xor eax, eax
mov ecx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411550
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41156b
mov ecx, 0xffffffff
push ecx
call fcn.00408c90
add esp, 4
mov dword [esp + 0x28], eax
cmp dword [esp + 0x1c], 0
jne 0x411599
mov ebx, dword [esp + 0x1c]
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x411590
mov dword [esp + 0x58], 0
mov eax, dword [esp + 0x28]
add edi, eax
mov esi, eax
cmp edi, eax
mov eax, dword [esp + 0x1c]
jbe 0x411601
mov esi, dword [esp + 0x28]
test ebx, ebx
jle 0x411601
mov ecx, eax
add ecx, ebx
mov esi, dword [esp + 0x28]
mov dword [esp + 4], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax], 0
je 0x411601
mov ebx, eax
lea eax, [esp + 0x58]
push eax
push ecx
push ebx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, edi
jae 0x411601
add ebx, eax
mov ecx, dword [esp + 4]
cmp ebx, ecx
mov eax, ebx
jb 0x4115d0
mov word [esi], 0
mov eax, dword [case.0x411448.6]
nop
nop
nop
nop
nop
jmp eax
mov word [esp + 0x58], 0xf9cd
mov byte [esp + 0x5a], 0x62
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov byte [esp + 0x63], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xb
lea edi, [esp + 0x58]
mov ebx, dword [esp + 0x34]
ja 0x41169c
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
mov edx, eax
and edx, 0xfe89fad0
xor eax, 0x7e89fad0
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x50
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xc
jb 0x411650
push edi
push dword [ebp + 8]
call fcn.00402790
add esp, 8
xor ecx, ecx
mov dword [esp + 0x50], eax
test eax, eax
setne cl
mov dword [esp + 0x2c], 0
mov dword [esp + 0x38], 0
jmp dword [ecx*4 + 0x442a78]
mov ecx, edi
push 3
call fcn.004094e0
push dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
push esi
push dword [esp + 0x30]
push dword [esp + 0x48]
push edi
call fcn.00418930
add esp, 0x14
mov ecx, edi
call fcn.00409e70
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442a98]
mov edx, esi
add esi, 0xfffffffc
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442aa0]
push esi
call fcn.00408ca0
add esp, 4
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x30]
jmp dword [0x442ac0]
jmp dword [0x442ac8]
add edi, 0xfffffff4
xor eax, eax
cmp edi, dword [esp + 0x38]
sete al
jmp dword [eax*4 + 0x442ab8]
jmp dword [0x442aa8]
mov eax, dword [edi - 0xc]
test eax, eax
je case.0x41202b.6
push eax
call fcn.00408ca0
add esp, 4
jmp case.0x41202b.6
jmp dword [0x442ab0]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x411770
push eax
call fcn.00408ca0
add esp, 4
jmp 0x411770
sete al
movzx eax, al
jmp dword [eax*4 + 0x442858]
mov eax, dword [case.0x411448.1]
nop
nop
nop
nop
nop
nop
jmp eax
mov word [esp + 0x58], 0x7996
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov word [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xb
ja 0x411826
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add eax, 0xaf
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x4be796af
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x37
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xc
jb 0x4117e0
push 2
push edi
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x442860]
mov word [esp + 0xe8], 0x15a5
mov dword [esp + 0xea], 0
mov dword [esp + 0xee], 0
mov dword [esp + 0xf2], 0
mov byte [esp + 0xf6], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xe
ja 0x4118d1
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax - 0x6875c883]
add eax, 0x7d
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x48]
add al, 0x95
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xf
jb 0x411890
push 5
lea eax, [esp + 0xec]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442868]
mov word [esp + 8], 0x4dca
mov dword [esp + 0xa], 0
mov dword [esp + 0xe], 0
mov byte [esp + 0x12], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0xa
ja 0x411963
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 8]
add eax, 0x9800650a
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0xba
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xb
jb 0x411930
push 2
lea eax, [esp + 0xc]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442870]
mov word [esp + 0x40], 0x650a
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 7
ja 0x411a0f
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx edx, byte [esp + ecx + 0x40]
mov ecx, eax
and ecx, 0x2fd858f1
xor eax, 0xafd858f1
lea ecx, [eax + ecx*2]
mov eax, ecx
and eax, edx
add ecx, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x69
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x40], al
mov eax, dword [esp + 0x20]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
cmp eax, 8
jb 0x4119b0
push 3
lea eax, [esp + 0x44]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442878]
movzx eax, bl
mov ebx, dword [esp + 0x34]
jmp dword [eax*4 + 0x442880]
mov word [esp + 0x58], 0xc576
mov dword [esp + 0x5e], 0
mov dword [esp + 0x5a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 9
ja 0x411abb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
mov edx, eax
and edx, 0xbb631e1
xor eax, 0xbb631e1
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xd9
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xa
jb 0x411a70
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x58], 0x2db9
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5e], 0
mov dword [esp + 0x62], 0
mov byte [esp + 0x66], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xe
ja 0x411b5f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xda]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x251b9ada
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 9
and eax, 9
add eax, ecx
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xf
jb 0x411b10
push edi
push dword [esp + 8]
call fcn.00402790
add esp, 8
mov dword [esp + 0x38], eax
mov word [esp + 0x58], 0xa12c
mov dword [esp + 0x5a], 0
mov word [esp + 0x5e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x411bf7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xbb]
and edx, ecx
mov esi, 0x975dee44
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xe8], esi
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0xe2
and eax, 0x62
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x411ba0
push edi
push dword [esp + 8]
call fcn.004026c0
add esp, 8
mov dword [esp + 0x54], eax
mov word [esp + 0x58], 0xf9a2
mov dword [esp + 0x5a], 0
mov dword [esp + 0x5d], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 8
ja 0x411c76
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0x5f]
and edx, ecx
mov esi, 0x6a69bba0
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0xe8], esi
mov eax, dword [esp + 0xe8]
add al, 0x67
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 9
jb 0x411c30
push edi
push dword [esp + 8]
call fcn.00402720
add esp, 8
fnstcw word [esp + 0xe6]
movzx eax, word [esp + 0xe6]
or eax, 0xc00
mov word [esp + 0x14a], ax
fldcw word [esp + 0x14a]
fistp dword [esp + 0x15c]
fldcw word [esp + 0xe6]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x28], eax
mov word [esp + 0x58], 0xdad6
mov byte [esp + 0x5a], 0x42
mov dword [esp + 0x5b], 0
mov byte [esp + 0x5f], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x411d4e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xffc6b236
add eax, 0xffc6b236
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0x85
and eax, 5
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x411cf0
push edi
push dword [esp + 8]
call fcn.00402720
add esp, 8
fnstcw word [esp + 0xe4]
movzx eax, word [esp + 0xe4]
or eax, 0xc00
mov word [esp + 0x148], ax
fldcw word [esp + 0x148]
fistp dword [esp + 0x158]
fldcw word [esp + 0xe4]
mov eax, dword [esp + 0x158]
mov dword [esp + 0x3c], eax
mov word [esp + 0x58], 0xb9c6
mov byte [esp + 0x5a], 0x2a
mov dword [esp + 0x5b], 0
mov byte [esp + 0x5f], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x411e15
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + 0xfa]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x2cfa43fa
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x2a
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x411dd0
push edi
push dword [esp + 8]
call fcn.004027f0
add esp, 8
mov dword [esp + 0xd8], eax
mov esi, 0xffffffff
mov eax, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + esi + 1], 0
lea esi, [esi + 1]
jne 0x411e40
mov edx, eax
add edx, esi
xor edi, edi
test esi, esi
mov dword [esp + 4], edx
jle 0x411e9b
cmp byte [eax], 0
je 0x411e9b
xor edi, edi
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edx
push ebx
call fcn.0040ef00
mov edx, dword [esp + 0x10]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x411e9b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411e70
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411ea9
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 4]
jbe 0x412ca6
mov ebx, dword [esp + 0xd4]
test esi, esi
jle 0x412ca6
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x1c], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412ca6
lea eax, [esp + 0x58]
push eax
push edx
push ecx
mov esi, ecx
mov edi, edx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x412ca2
add esi, eax
cmp esi, edi
mov ecx, esi
mov edx, edi
mov edi, dword [esp + 0x1c]
jb 0x411f00
jmp 0x412ca6
push dword [esp + 0x50]
call fcn.004029c0
add esp, 4
mov ecx, eax
mov dword [esp + 0x2c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x411f71
mov esi, eax
test dl, dl
jne 0x411f77
mov ecx, esi
push ecx
call fcn.00408c90
add esp, 4
mov edx, dword [esp + 0x2c]
mov dword [eax], edx
add eax, 4
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x442a80]
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx + ecx*2]
lea esi, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
lea ecx, [eax + 0xc]
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x442a88]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, esi
sete dl
jmp dword [edx*4 + 0x442a88]
mov dword [esp + 0x38], eax
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x442a90]
lea edi, [esp + 0x58]
mov word [edx], 0
mov ecx, dword [esp + 0x18]
inc ecx
xor eax, eax
cmp ecx, dword [esp + 0x2c]
setb al
mov ebx, dword [esp + 0x34]
jmp dword [eax*4 + 0x442a90]
mov dword [esp + 0x18], ecx
push ecx
push dword [esp + 0x54]
call fcn.004029d0
add esp, 8
mov esi, eax
mov word [esp + 0x58], 0xc7cd
mov byte [esp + 0x5a], 0x54
lea eax, [esp + 0x5b]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xc
ja 0x4120c6
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax + ecx]
add edx, 0xa76ec6cd
add eax, 0xa76ec6cd
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x65
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xd
jb 0x412080
push edi
push esi
call fcn.004026c0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x58], 0x2b39
mov byte [esp + 0x5a], 0xa0
lea eax, [esp + 0x5b]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x412151
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x4ede4ce5]
add eax, 0x1b
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x43
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x412110
push edi
push esi
call fcn.004026c0
add esp, 8
mov dword [esp + 4], eax
mov word [esp + 0x58], 0xa5b5
mov byte [esp + 0x5a], 0xda
lea eax, [esp + 0x5b]
mov dword [eax + 7], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x4121fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x7948ca24]
and edx, ecx
mov edi, 0x7948ca23
sub edi, eax
or edi, ecx
add edi, eax
add edi, 0x86b735dd
mov ebx, edi
and ebx, edx
xor edx, edi
add eax, ecx
add eax, 0x86b735dc
lea ecx, [edx + ebx*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xfc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x4121a0
lea eax, [esp + 0x58]
push eax
push esi
call fcn.004026c0
add esp, 8
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + ecx*2]
mov edx, dword [esp + 0x38]
mov dword [edx + ecx*4], 0
mov esi, dword [esp + 0x1c]
mov dword [edx + ecx*4 + 4], esi
lea esi, [edx + ecx*4]
mov dword [edx + ecx*4 + 8], eax
mov ebx, 0xfffffffe
xor edi, edi
mov eax, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [eax + edi], 0
lea edi, [edi + 1]
jne 0x412240
test edi, edi
jns 0x412260
mov eax, 0xffffffff
jmp 0x412263
lea eax, [ebx + 2]
push eax
call fcn.00408c90
add esp, 4
mov edx, eax
mov dword [esi], eax
mov ecx, dword [esp + 4]
test ecx, ecx
je 0x412280
dec edi
jmp 0x412299
mov edi, ecx
not edi
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412290
mov dword [esp + 0x58], 0
add ebx, edx
cmp ebx, edx
jbe 0x412010
test edi, edi
jle 0x412010
mov esi, ecx
add esi, edi
lea edi, [esp + 0x58]
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412014
push edi
push esi
push ecx
mov edi, ecx
mov dword [esp + 0x10], edx
call fcn.0040ef00
mov edx, dword [esp + 0x10]
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x412010
add edi, eax
cmp edi, esi
mov ecx, edi
lea edi, [esp + 0x58]
jb 0x4122c0
jmp 0x412014
mov esi, dword [esp + 0x30]
jmp dword [0x442ac0]
push dword [esp + 0x3c]
call fcn.00408ca0
add esp, 4
jmp dword [0x442ac8]
push dword [esp + 0x28]
call fcn.00408ca0
add esp, 4
mov eax, dword [case.0x41202b.15]
nop
jmp eax
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x30]
je 0x410fda
lea eax, [esp + 0x40]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x4489e8]
push edx
call fcn.00439450
add esp, 0x20
jmp 0x410fda
mov word [esp + 0xc0], 0xa0ac
mov byte [esp + 0xc2], 0x14
mov dword [esp + 0xc3], 0
mov dword [esp + 0xc6], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 9
ja 0x412405
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0xc0]
lea edx, [eax + 0x40849efd]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x40849efc
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov ecx, eax
or ecx, 0x14
and eax, 0x14
add eax, ecx
inc al
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0xc0], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0xa
jb 0x4123b0
push 3
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp dword [ecx*4 + 0x442880]
mov ecx, dword [esp + 0x18]
mov word [esi], 0
mov ebx, 0xffffffff
nop
cmp byte [ecx + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x412440
mov edx, ecx
add edx, ebx
xor edi, edi
test ebx, ebx
mov dword [esp + 4], edx
jle 0x41249b
cmp byte [ecx], 0
je 0x41249b
xor edi, edi
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edx
push esi
call fcn.0040ef00
mov edx, dword [esp + 0x10]
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, edx
jae 0x41249b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x412470
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4124a9
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov ecx, edi
and ecx, 1
xor edi, 1
lea ecx, [edi + ecx*2]
mov dword [esp + 0x58], 0
lea ecx, [eax + ecx*2]
add ecx, 0xfffffffe
mov esi, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 4]
jbe 0x41251f
mov esi, dword [esp + 0x2c]
test ebx, ebx
jle 0x41251f
mov esi, dword [esp + 0x2c]
nop
nop
nop
cmp byte [ecx], 0
je 0x41251f
lea eax, [esp + 0x58]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x1c]
jae 0x41251f
add ebx, eax
cmp ebx, edi
mov ecx, ebx
jb 0x4124f0
mov word [esi], 0
mov word [esp + 0x58], 0x5d2d
mov byte [esp + 0x5a], 0xd4
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x4125a5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x2fd23ce3]
and edx, ecx
add eax, ecx
add eax, 0xd02dc31d
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x35
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x412560
lea eax, [esp + 0x58]
push eax
push dword [ebp + 8]
call fcn.00402790
add esp, 8
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
setne cl
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov ebx, 0x51eb851f
jmp dword [ecx*4 + 0x4429c8]
lea edi, [esp + 0x58]
mov ecx, edi
push 2
call fcn.004094e0
push dword [esp + 0x1c]
mov esi, dword [esp + 0x1c]
push esi
push dword [esp + 0x34]
push dword [esp + 0x5c]
push edi
call fcn.00416040
add esp, 0x14
mov ecx, edi
call fcn.00409e70
movzx eax, al
jmp dword [eax*4 + 0x4429f8]
mov eax, dword [esp + 0x5c]
mov byte [esp + 0xca], 0
cmp eax, 0x3ff
ja 0x412975
mov byte [esp + 0xc9], 0x30
lea esi, [esp + 0xc9]
jmp 0x4129e3
push dword [esp + 0x38]
call fcn.004029c0
add esp, 4
mov ecx, eax
mov dword [esp + 0x1c], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x41266c
mov esi, eax
test dl, dl
jne 0x412672
mov ecx, esi
push ecx
call fcn.00408c90
add esp, 4
mov ecx, dword [esp + 0x1c]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x18], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x4429d0]
mov eax, dword [esp + 0x1c]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x4429d8]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x4429d8]
jmp dword [0x4429ec]
xor esi, esi
xor eax, eax
cmp esi, dword [esp + 0x1c]
setb al
jmp dword [eax*4 + 0x4429f0]
lea eax, [esp + 0x58]
push eax
push edi
call fcn.004027f0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [esi + esi*2]
mov ecx, dword [esp + 0x18]
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 8]
push ebx
call fcn.00415b10
inc esi
xor eax, eax
cmp esi, dword [esp + 0x1c]
setb al
mov ebx, 0x51eb851f
jmp dword [eax*4 + 0x4429f0]
push esi
push dword [esp + 0x3c]
call fcn.004029d0
add esp, 8
mov edi, eax
mov word [esp + 0x58], 0x2f35
mov byte [esp + 0x5a], 0x9a
mov dword [esp + 0x5f], 0
mov dword [esp + 0x5b], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xa
ja 0x4127e3
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0xe6c8a44]
add eax, 0xbc
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xdc
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xb
jb 0x4127a0
lea eax, [esp + 0x58]
push eax
push edi
call fcn.004026c0
add esp, 8
mov dword [esp + 4], eax
mov word [esp + 0x58], 0x5345
mov byte [esp + 0x5a], 0xda
mov dword [esp + 0x5b], 0
mov dword [esp + 0x5f], 0
mov dword [esp + 0x62], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xd
ja 0x412871
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x45529c]
add eax, 0x64
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x44
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xe
jb 0x412830
lea eax, [esp + 0x58]
push eax
push edi
call fcn.004026c0
add esp, 8
mov ebx, eax
mov dword [esp + 0x58], 0xf354a9a0
mov dword [esp + 0x5c], 0
mov word [esp + 0x60], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 9
ja 0x412720
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x58]
lea edx, [eax - 0x7e43ec02]
add eax, 0xfe
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xe
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x58], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xa
jb 0x4128b0
jmp 0x412720
xor eax, eax
test esi, esi
sete al
mov ebx, dword [esp + 0x34]
mov ecx, esi
jmp dword [eax*4 + 0x442a00]
lea esi, [ecx - 4]
mov eax, dword [ecx - 4]
mov edx, ecx
lea ecx, [eax + eax*2]
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442a08]
push esi
call fcn.00408ca0
add esp, 4
lea edi, [esp + 0x58]
jmp dword [0x442a18]
xor eax, eax
cmp edi, dword [esp + 0x18]
sete al
jmp dword [eax*4 + 0x442a10]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x412960
push eax
call fcn.00408ca0
add esp, 4
mov eax, dword [edi - 8]
add edi, 0xfffffff4
test eax, eax
je 0x412940
push eax
call fcn.00408ca0
add esp, 4
jmp 0x412940
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xca]
cmp eax, 0x19000
jb 0x4129c9
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mul ebx
shr edx, 5
imul eax, edx, 0x64
mov edi, ecx
sub edi, eax
movzx eax, word [edi + edi + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x412990
cmp edx, 9
ja 0x4129d0
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x4129df
mov edx, ecx
cmp edx, 9
jbe 0x4129bc
movzx eax, word [edx + edx + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
lea edi, [esp + 0x58]
mov ebx, dword [esp + 0x34]
mov dword [esp + 8], 0xb3420b03
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x13], 0
mov dword [esp + 0x40], 0
mov eax, dword [esp + 0x40]
cmp eax, 0xe
ja 0x412a70
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add edx, 0x33c16c9
add eax, 0xc9
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x81
mov ecx, dword [esp + 0x40]
mov byte [esp + ecx + 8], al
inc dword [esp + 0x40]
mov eax, dword [esp + 0x40]
cmp eax, 0xf
jb 0x412a20
mov dword [esp + 0xe8], 0xfdfa8e83
mov dword [esp + 0xec], 0x4f83fff3
mov dword [esp + 0xf0], 0xfffb8284
mov dword [esp + 0xf4], 0x8b488581
mov dword [esp + 0xf8], 0xf8893587
mov dword [esp + 0xfc], 0xf230fd80
mov dword [esp + 0x100], 0x888d83f6
mov dword [esp + 0x104], 0x278b828d
mov dword [esp + 0x108], 0x96e9ea96
mov dword [esp + 0x10c], 0x93209de9
mov dword [esp + 0x110], 0xe3902d9f
mov dword [esp + 0x114], 0xdc9529e1
mov dword [esp + 0x118], 0xaddfafa8
mov dword [esp + 0x11c], 0xaeac11e6
mov dword [esp + 0x120], 0x1ba8d2a2
mov dword [esp + 0x124], 0xb2d5d6aa
mov dword [esp + 0x128], 0xbe04b9cd
mov dword [esp + 0x12c], 0xe9cba7b5
mov word [esp + 0x130], 0x2d0e
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x48]
cmp eax, 0x51
ja 0x412bb1
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x48]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax + 0x9aec131]
add eax, 0x31
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0xa9
mov ecx, dword [esp + 0x48]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x48]
mov eax, dword [esp + 0x48]
cmp eax, 0x52
jb 0x412b70
lea eax, [0x4479d3]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412bc0
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x412bf2
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xe9]
inc edx
test cl, cl
jne 0x412be0
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x412c0b
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x412c00
mov byte [eax], 0
movzx ecx, byte [esp + 8]
test cl, cl
je 0x412c2b
lea edx, [esp + 9]
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412c20
mov byte [eax], 0
xor eax, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442a00]
jmp dword [0x442a18]
push dword [esp + 0x2c]
call fcn.00408ca0
add esp, 4
mov eax, dword [case.0x412e8a.65]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x50]
jmp dword [0x442a30]
jmp dword [0x442a3c]
push esi
call fcn.00408ca0
add esp, 4
nop
nop
nop
nop
nop
push esi
call fcn.00408ca0
add esp, 4
jmp dword [0x442a44]
mov ecx, edi
call fcn.00409520
mov esi, dword [esp + 0x30]
mov eax, dword [case.0x411448.1]
nop
jmp eax
mov edi, dword [esp + 0x1c]
mov word [ebx], 0
lea eax, [esp + 8]
push eax
push 0
push 0
push edi
mov ebx, dword [esp + 0xe4]
push ebx
push 0
call dword [0x4489dc]
mov esi, dword [esp + 8]
lea eax, [esi + esi]
test esi, esi
jns 0x412cd5
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov ecx, eax
lea eax, [esp + 8]
push eax
push esi
mov dword [esp + 0x58], ecx
push ecx
push edi
push ebx
push 0
call dword [0x4489dc]
jmp dword [0x442888]
push ebx
call fcn.00408ca0
add esp, 4
mov ecx, dword [esp + 0x54]
mov eax, ecx
jmp 0x412e99
mov ecx, dword [esp + 0x54]
mov edi, ecx
jmp 0x412e91
mov esi, dword [ebx + edi*8 + 4]
cmp esi, edx
jne 0x412e5e
not edx
shr edx, 0x1f
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp dword [edx*4 + 0x442918]
mov eax, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x412d50
sub ebx, dword [esp + 0x28]
mov eax, ebx
inc eax
mov dword [esp + 0x14c], eax
lea esi, [ebx + ebx + 2]
jns 0x412d71
mov esi, 0xffffffff
mov edi, dword [case.0x412e8a.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
push esi
call fcn.00408c90
add esp, 4
jmp edi
mov ecx, dword [case.0x412e8a.8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [esp + 0x28]
lea edx, [ecx + ebx]
mov dword [esp + 0x3c], edx
not ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebx
jmp dword [0x442944]
mov word [esp + 0x48], 0x4276
mov byte [esp + 0x4a], 0xca
mov dword [esp + 0x4b], 0
mov byte [esp + 0x4f], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x24]
cmp eax, 7
ja 0x412e35
nop
nop
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax - 0x1680f81e]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xe97f07e1
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0xd2
mov ecx, dword [esp + 0x24]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 0x24]
mov eax, dword [esp + 0x24]
cmp eax, 8
jb 0x412df0
push 3
lea eax, [esp + 0x4c]
push eax
push dword [esp + 0xc]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp dword [ecx*4 + 0x4428f8]
push 0
push eax
push dword [esp + 0x5c]
push 0x2b
push ecx
push 5
push dword [0x4489e8]
push esi
call fcn.00439450
add esp, 0x20
not eax
shr eax, 0x1f
lea edi, [esp + 0x58]
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x34]
jmp dword [eax*4 + 0x442918]
lea eax, [edi + 1]
cmp byte [edi], 0
je 0x412e9d
mov edi, eax
jmp 0x412e91
mov eax, edi
sub eax, ecx
xor ebx, ebx
mov dword [esp + 0x18], eax
test eax, eax
jle 0x412ee7
cmp byte [ecx], 0
je 0x412ee7
xor ebx, ebx
mov esi, dword [esp + 0x54]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0040ef00
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x412ee7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x412ec0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x412ef5
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 4], ecx
cmp ecx, eax
mov esi, dword [esp + 0x54]
jbe 0x412f5b
mov ebx, dword [esp + 0x2c]
cmp dword [esp + 0x18], 0
jle 0x412f5b
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x412f5b
lea eax, [esp + 0x58]
push eax
push edi
push esi
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 4]
jae 0x412f5b
add esi, eax
cmp esi, edi
jb 0x412f30
mov word [ebx], 0
lea ecx, [esp + 0x58]
push 1
call fcn.004094e0
xor edi, edi
mov ebx, dword [esp + 0x34]
jmp 0x412f85
mov edi, dword [esp + 0x18]
inc edi
mov esi, dword [esp + 0x38]
push esi
call fcn.004029c0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x442890]
mov dword [esp + 0x18], edi
push edi
push esi
call fcn.004029a0
add esp, 8
push eax
call fcn.00402700
add esp, 4
mov esi, eax
xor ecx, ecx
test eax, eax
sete cl
mov eax, 1
jmp dword [ecx*4 + 0x442898]
mov eax, esi
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x412fd0
sub edi, esi
mov eax, edi
inc eax
jns 0x412ff0
mov eax, 0xffffffff
jmp 0x412ff6
lea eax, [edi + edi]
add eax, 2
push eax
call fcn.00408c90
add esp, 4
mov edx, edi
test esi, esi
jne 0x413019
mov edx, esi
not edx
xor ecx, ecx
nop
nop
nop
nop
nop
inc edx
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413010
mov dword [esp + 0xe8], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
cmp ecx, eax
jbe 0x413090
mov edi, dword [esp + 0x1c]
test edx, edx
jle 0x413090
mov ebx, esi
add ebx, edx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x413090
lea eax, [esp + 0xe8]
push eax
push ebx
push esi
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 4]
jae 0x413090
add esi, eax
cmp esi, ebx
jb 0x413050
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0xd8], 0
setg al
mov word [edi], 0
push 0
push eax
push dword [esp + 0x30]
push dword [esp + 0x48]
mov esi, dword [esp + 0x2c]
push esi
push dword [esp + 0x64]
push dword [esp + 0x44]
lea edi, [esp + 0x74]
push edi
call fcn.0041ac50
add esp, 0x20
xor eax, eax
mov ebx, dword [esp + 0x34]
jmp dword [0x4428a0]
push esi
call fcn.00408ca0
add esp, 4
xor eax, eax
jmp dword [eax*4 + 0x4428a8]
jmp dword [eax*4 + 0x4428a8]
mov eax, dword [case.0x4101fd.59]
nop
nop
nop
nop
jmp eax
jmp dword [0x4428c0]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, edi
setae dl
jmp dword [edx*4 + 0x442950]
xor edx, edx
movzx edx, dl
mov esi, eax
jmp dword [edx*4 + 0x442958]
jmp dword [0x44297c]
xor edx, edx
cmp word [ecx], 0
setne dl
mov esi, eax
jmp dword [edx*4 + 0x442958]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov esi, ecx
jmp dword [edx*4 + 0x442960]
mov dword [esp + 0x1c], edi
mov ebx, esi
sub ebx, edi
sar ebx, 1
mov ecx, dword [esp + 0x14c]
add ecx, ebx
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x413198
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov edi, eax
mov dword [esp + 4], eax
cmp esi, dword [esp + 0x1c]
je 0x413262
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 4]
lea ecx, [ebx - 1]
mov edx, ebx
and edx, 3
je 0x4131f9
mov dword [esp + 0x28], ebx
mov dword [esp + 0x1c], ecx
xor esi, esi
mov edi, dword [esp + 4]
movzx ecx, word [eax]
mov ebx, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, ebx
mov word [edi], cx
add edi, 2
inc esi
cmp ebx, esi
jne 0x4131d0
mov ebx, dword [esp + 0x28]
sub ebx, esi
mov ecx, dword [esp + 0x1c]
jmp 0x4131fd
mov edi, dword [esp + 4]
cmp ecx, 3
jb 0x413262
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [edi], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [edi + 6], dx
add edi, 8
add ebx, 0xfffffffc
jne 0x413210
mov edx, dword [esp + 0x18]
movzx eax, word [edx]
test ax, ax
je 0x4132e8
mov ecx, edx
add ecx, 2
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413280
mov word [edi], 0
jmp dword [0x442968]
push edx
call fcn.00408ca0
add esp, 4
mov ecx, edi
not ecx
and ecx, esi
mov eax, esi
not eax
and eax, edi
sub eax, ecx
mov ecx, 0xffffffff
cmp eax, 0xfffffffe
jl 0x4132c2
add eax, 2
mov ecx, eax
push ecx
call fcn.00408c90
add esp, 4
mov dword [esp + 0x3c], eax
push eax
push esi
call fcn.00434780
add esp, 8
mov ecx, dword [esp + 0xd8]
mov eax, ecx
jmp dword [0x442970]
mov esi, dword [esp + 4]
mov word [edi], 0
jmp dword [0x442968]
jmp dword [0x4429a8]
push dword [esp + 0x28]
call fcn.00408ca0
add esp, 4
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp dword [0x4429b0]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
jmp dword [0x4429b0]
push dword [esp + 0x3c]
call fcn.00408ca0
add esp, 4
mov ecx, edi
call fcn.00409e70
mov ecx, edi
call fcn.00409520
push dword [esp + 0x54]
call fcn.00437830
add esp, 4
lea ecx, [esp + 0xe8]
call fcn.00437ca0
inc ebx
jmp 0x4104e1
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x28], 0
jne 0x41337f
xor edi, edi
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
lea edi, [edi + 1]
jne 0x413370
add edi, dword [esp + 0xd4]
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 4], ecx
cmp ecx, eax
jbe 0x4133db
mov esi, dword [esp + 0x18]
cmp edi, dword [esp + 0x28]
jbe 0x4133db
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4133db
lea eax, [esp + 0x58]
push eax
push edi
push ebx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 4]
jae 0x4133db
add ebx, eax
cmp ebx, edi
jb 0x4133b0
mov word [esi], 0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp dword [0x44294c]
mov edi, dword [esp + 0x3c]
cmp dword [esp + 0x28], 0
jne 0x41340f
xor edi, edi
nop
nop
nop
nop
nop
cmp byte [edi], 0
lea edi, [edi + 1]
jne 0x413400
add edi, dword [esp + 0xd4]
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 4], ecx
cmp ecx, eax
jbe 0x41346b
mov esi, dword [esp + 0x18]
cmp edi, dword [esp + 0x28]
jbe 0x41346b
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x18]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41346b
lea eax, [esp + 0x58]
push eax
push edi
push ebx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 4]
jae 0x41346b
add ebx, eax
cmp ebx, edi
jb 0x413440
mov word [esi], 0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
jmp case.0x412e8a.11
mov eax, dword [esp + 0x54]
mov edi, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, edi
add eax, 0xfffffffe
xor edx, edx
cmp eax, edi
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x442950]
push esi
call fcn.00408ca0
add esp, 4
push esi
call fcn.00408ca0
mov ecx, dword [esp + 0xdc]
add esp, 4
mov eax, ecx
jmp dword [0x442980]
mov esi, eax
inc eax
cmp byte [esi], 0
jne case.0x412e8a.23
mov eax, esi
sub eax, ecx
xor ebx, ebx
test eax, eax
mov dword [esp + 0x18], eax
jle 0x413517
cmp byte [ecx], 0
je 0x413517
xor ebx, ebx
mov edi, dword [esp + 0xd8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x58], 0
lea eax, [esp + 0x58]
push eax
push esi
push edi
call fcn.0040ef00
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x413517
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4134f0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413525
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [esp + 0x58], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 4], ecx
cmp ecx, eax
mov edi, dword [esp + 0xd8]
jbe 0x41358b
mov ebx, dword [esp + 0x28]
cmp dword [esp + 0x18], 0
jle 0x41358b
mov ebx, dword [esp + 0x28]
nop
nop
nop
cmp byte [edi], 0
je 0x41358b
lea eax, [esp + 0x58]
push eax
push esi
push edi
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 0x58]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 4]
jae 0x41358b
add edi, eax
cmp edi, esi
jb 0x413560
mov word [ebx], 0
lea edi, [esp + 0x58]
mov ecx, edi
push 1
call fcn.004094e0
xor esi, esi
jmp 0x4135b5
mov esi, dword [esp + 0x18]
inc esi
mov ebx, dword [esp + 0x38]
push ebx
call fcn.004029c0
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
jmp dword [ecx*4 + 0x442988]
mov dword [esp + 0x18], esi
push esi
push ebx
call fcn.004029a0
add esp, 8
push eax
call fcn.00402700
add esp, 4
mov ebx, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442990]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x413600
sub edi, ebx
mov eax, edi
inc eax
jns 0x413620
mov eax, 0xffffffff
jmp 0x413626
lea eax, [edi + edi]
add eax, 2
push eax
call fcn.00408c90
add esp, 4
mov edx, edi
test ebx, ebx
jne 0x413649
mov edx, ebx
not edx
xor ecx, ecx
nop
nop
nop
nop
nop
inc edx
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413640
mov dword [esp + 8], 0
lea ecx, [eax + edi*2]
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 4], ecx
cmp ecx, eax
jbe 0x4136b0
mov esi, dword [esp + 0x1c]
test edx, edx
jle 0x4136b0
mov edi, ebx
add edi, edx
mov esi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x4136b0
lea eax, [esp + 8]
push eax
push edi
push ebx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esp + 8]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 4]
jae 0x4136b0
add ebx, eax
cmp ebx, edi
jb 0x413680
nop
nop
nop
nop
nop
mov word [esi], 0
push 0
push 0
push dword [esp + 0x34]
push dword [esp + 0x5c]
mov esi, dword [esp + 0x2c]
push esi
push dword [esp + 0x50]
push dword [esp + 0x40]
lea edi, [esp + 0x74]
push edi
call fcn.0041ac50
add esp, 0x20
jmp dword [0x442998]
push esi
call fcn.00408ca0
add esp, 4
jmp case.0x412e8a.31
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0xe8]
mov edi, dword [eax]
inc edi
mov dword [eax], edi
mov ebx, edx
mov ebx, dword [edx]
push ebx
call fcn.004029c0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x442b20]
mov dword [esi + 0xc], ebx
mov ebx, edi
mov edi, dword [esi + 0x70]
jmp dword [0x442b28]
push ebx
push dword [esi + 0xc]
call fcn.004029d0
add esp, 8
mov dword [edi], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ebx
push dword [esi + 0xc]
call fcn.004029d0
add esp, 8
mov dword [edi], eax
jmp dword [0x442b34]
mov edi, dword [esi + 0xe4]
mov word [edi], 0xd55d
mov eax, dword [esi + 0x150]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x4137f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0x99932a9d
add eax, 0x99932a9d
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0xb5
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x4137c0
push 2
push edi
mov edi, dword [esi + 0x70]
push dword [edi]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x442b38]
mov edx, dword [esi + 0xac]
mov word [edx], 0x818c
mov byte [edx + 2], 0x14
mov eax, dword [esi + 0x14c]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x413889
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x2d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0xac]
add eax, 0x342d692d
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xc5
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x413850
push 3
push edx
push dword [edi]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442b40]
movzx eax, bl
mov edx, dword [esi + 0x28]
jmp dword [eax*4 + 0x442b48]
mov ebx, dword [esi + 0xdc]
mov word [ebx], 0xb115
mov eax, dword [esi + 0x13c]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x413948
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
mov ecx, 0x4909aa37
sub ecx, eax
add eax, 0xc8
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0x87
and eax, 0x87
add eax, ecx
inc al
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x413900
push 3
push ebx
push dword [edi]
call fcn.00402950
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov edx, dword [esi + 0x28]
jmp dword [ecx*4 + 0x442b48]
mov edx, dword [esi + 0xa8]
mov word [edx], 0x255d
mov eax, dword [esi + 0x148]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
mov ebx, dword [esi + 0x15c]
ja 0x4139d8
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax - 0x32f7afdb]
add eax, 0x25
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xa8]
mov eax, dword [esi + 0x10]
add al, 0xfd
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x4139a0
push edx
push dword [edi]
call fcn.004026c0
add esp, 8
mov dword [ebx], eax
mov edx, dword [esi + 0xa4]
mov word [edx], 0x2d38
mov byte [edx + 2], 0xa0
mov eax, dword [esi + 0x144]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x413a62
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
mov edx, eax
and edx, 0xe4c6841b
xor eax, 0x64c6841b
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov edx, dword [esi + 0xa4]
mov eax, dword [esi + 0x10]
add al, 0x43
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x413a20
push edx
push dword [edi]
call fcn.00402720
add esp, 8
fnstcw word [esi + 0x62]
movzx eax, word [esi + 0x62]
or eax, 0xc00
mov word [esi + 0xb2], ax
fldcw word [esi + 0xb2]
fistp dword [esi + 0x164]
fldcw word [esi + 0x62]
mov eax, dword [esi + 0x164]
mov ecx, dword [esi + 0x5c]
mov dword [ecx], eax
mov edx, dword [esi + 0x74]
mov word [edx], 0x9935
mov eax, dword [esi + 0x140]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xa
ja 0x413b15
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x74]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add ecx, 0x72037b3c
add eax, 0x3c
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov edx, dword [esi + 0x74]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x5c
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xb
jb 0x413ad0
push edx
push dword [edi]
call fcn.00402720
add esp, 8
fnstcw word [esi + 0x60]
movzx eax, word [esi + 0x60]
or eax, 0xc00
mov word [esi + 0xb0], ax
fldcw word [esi + 0xb0]
fistp dword [esi + 0x160]
fldcw word [esi + 0x60]
mov ecx, dword [esi + 0x160]
mov eax, dword [esi + 0xe0]
mov dword [eax], ecx
mov ebx, dword [ebx]
mov edi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + edi + 1], 0
lea edi, [edi + 1]
jne 0x413b60
mov dword [esi + 0x10], 0
mov edx, dword [esi + 0xa0]
test edi, edi
mov dword [esi + 0x64], ecx
jle 0x413bd0
add edi, ebx
xor ecx, ecx
mov edx, dword [esi + 0xa0]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413bd0
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
mov dword [esi + 0x24], ecx
call fcn.0040ef00
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
mov ecx, dword [esi + 0x24]
add edx, 2
cmp ecx, 0x3fd
ja 0x413bd0
add ebx, eax
inc ecx
cmp ebx, edi
jb case.default.0x413c04
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edx], 0
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov ebx, dword [esi + 0x2c]
mov dword [ebx], 0
push dword [esi + 0x58]
push dword [esi + 0x30]
push dword [esi + 0xa0]
call fcn.0040bcb0
add esp, 0xc
movzx eax, al
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x70]
jmp dword [eax*4 + 0x442b50]
jmp case.0x4152b3.6
mov eax, dword [case.0x413c04.5]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ecx, dword [esi + 0x64]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442b68]
mov eax, dword [case.0x413c04.66]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x442c60]
xor eax, eax
mov ecx, dword [esi + 0x5c]
cmp dword [ecx], 2
sete al
jmp dword [eax*4 + 0x442c68]
mov eax, dword [esi + 0x30]
mov edx, dword [eax]
movzx eax, byte [edx]
xor ebx, ebx
test al, al
je 0x413c91
lea ecx, [edx + 1]
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
shr al, 7
movzx eax, al
add ebx, eax
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x413c80
mov dword [esi + 0xc], edx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413ca2
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x80]
mov dword [eax], edx
mov eax, dword [esi + 0x58]
mov ecx, dword [eax]
mov dword [esi + 0x10], 0
lea edi, [edx + ebx*2]
mov dword [esi + 0x24], edi
cmp edi, edx
jbe 0x414cb6
test ecx, ecx
jle 0x414cb6
mov ebx, dword [esi + 0xc]
add ecx, ebx
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x414cb6
lea eax, [esi + 0x10]
push eax
push ecx
push ebx
mov edi, ecx
mov dword [esi + 0xc], edx
call fcn.0040ef00
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
jae 0x414cb3
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0x58]
mov ecx, edi
jb 0x413ce0
jmp 0x414cb6
mov ebx, dword [esi + 0x158]
mov word [ebx], 0x8576
mov dword [ebx + 6], 0
mov dword [ebx + 2], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x413d83
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x41]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x954f9341
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x39
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x413d50
push ebx
push dword [edi]
call fcn.004026c0
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442b70]
mov edi, dword [esi + 0xd4]
mov dword [edi], 0xa868586
mov eax, dword [esi + 0x134]
mov byte [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xc
ja 0x413e07
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xe9be1a15
add eax, 0xe9be1a15
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x6d
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xd
jb 0x413dd0
mov eax, dword [edi]
push dword [eax + 0x14]
call fcn.00409330
add esp, 4
call fcn.00409350
and eax, 0xf
or eax, 0x10
mov dword [esi + 0xc], eax
xor ebx, ebx
mov eax, dword [case.0x413d95.6]
mov edi, dword [esi + 0x90]
nop
jmp eax
xor eax, eax
cmp ebx, dword [esi + 0xc]
setb al
jmp dword [eax*4 + 0x442b90]
call fcn.00409350
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [edi], ax
add edi, 2
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
mov eax, dword [case.0x413d95.6]
jmp case.0x413d95.4
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x413e90
mov ecx, edi
sub ecx, eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x138], ecx
test ecx, ecx
mov dword [esi + 0x64], eax
jle 0x413ee7
cmp byte [eax], 0
je 0x413ee7
mov dword [esi + 0xc], 0
mov ebx, dword [esi + 0x64]
nop
mov dword [esi + 0x10], 0
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ef00
add esp, 0xc
lea ecx, [ebx + eax]
inc dword [esi + 0xc]
cmp ecx, edi
jae 0x413ee7
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x413ec0
mov eax, dword [esi + 0x50]
mov ebx, dword [esi + 0xc]
mov dword [eax], ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413efd
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x20]
mov dword [eax], edx
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
mov dword [esi + 0x10], 0
lea eax, [edx + eax*2]
add eax, 0xfffffffe
mov dword [esi + 0x24], eax
cmp eax, edx
jbe 0x414086
cmp dword [esi + 0x138], 0
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
mov ebx, dword [esi + 0x64]
jle 0x41408c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41408c
lea eax, [esi + 0x10]
push eax
push edi
push ebx
mov dword [esi + 0xc], edx
call fcn.0040ef00
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
jae 0x414086
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
jb 0x413f50
jmp 0x41408c
mov word [edi], 0
mov edi, dword [esi + 0xd0]
mov dword [edi], 0x2b962dc1
mov dword [edi + 4], 0x17a329e5
mov dword [edi + 8], 0x13ff15a4
mov dword [edi + 0xc], 0x1f1e11b4
mov eax, dword [esi + 0x130]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x16
ja 0x414017
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov eax, dword [esi + 4]
movzx eax, byte [edi + eax]
mov edx, 0x5c030aa5
sub edx, ecx
add ecx, 0x5a
and ecx, eax
or edx, eax
not edx
add edx, eax
sub edx, ecx
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x8a
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x17
jb 0x413fe0
movzx eax, word [edi]
mov ebx, dword [esi + 0xd8]
mov edi, ebx
test ax, ax
mov edx, dword [esi + 0x90]
je 0x414051
mov ecx, dword [esi + 0x128]
mov edi, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414040
mov word [edi], 0
movzx eax, word [edx]
test ax, ax
je 0x414103
mov ecx, dword [esi + 0x12c]
mov edx, dword [esi + 0x8c]
nop
nop
mov word [edi], ax
add edi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414070
jmp 0x414109
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x4c]
mov word [edx], 0
mov edx, dword [eax]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
push ecx
push 0
push 0
mov dword [esi + 0x24], edx
push edx
mov dword [esi + 0xc], eax
push eax
push 0
mov edi, ecx
call dword [0x4489dc]
mov ebx, dword [edi]
lea eax, [ebx + ebx]
test ebx, ebx
jns 0x4140bd
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov edi, eax
push dword [esi + 0x4c]
push ebx
push eax
push dword [esi + 0x24]
mov ebx, dword [esi + 0xc]
push ebx
push 0
call dword [0x4489dc]
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x442b78]
push ebx
call fcn.00408ca0
add esp, 4
mov eax, dword [esi + 0x20]
mov dword [eax], edi
mov edx, dword [esi + 0x3c]
mov ebx, dword [esi + 0x38]
jmp 0x414430
mov edx, dword [esi + 0x8c]
mov word [edi], 0
sub edi, ebx
sar edi, 1
push edx
push 0
push 0
push edi
push ebx
push 0
mov ebx, edx
call dword [0x4489dc]
mov ebx, dword [ebx]
mov eax, ebx
add eax, 4
lea eax, [ebx + ebx + 8]
jns 0x414135
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov ecx, dword [esi + 0x20]
mov dword [ecx], eax
push dword [esi + 0x8c]
push ebx
push eax
push edi
push dword [esi + 0xd8]
push 0
call dword [0x4489dc]
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442b98]
xor ecx, ecx
cmp eax, 1
sete cl
jmp dword [ecx*4 + 0x442ba0]
mov ecx, dword [case.0x413c04.24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x413c04.28]
mov edi, dword [esi + 0x20]
mov edx, dword [esi + 0x3c]
mov ebx, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
cmp eax, 2
sete cl
jmp dword [ecx*4 + 0x442bc8]
mov ebx, dword [esi + 0xbc]
mov dword [ebx], 0x93009140
mov dword [ebx + 4], 0x9f4f9d0f
mov word [ebx + 8], 0x999e
mov eax, dword [esi + 0xec]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x13
ja 0x414261
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax - 0x297a73d]
add eax, 0xc3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
mov ecx, eax
or ecx, 0xaa
and eax, 0xaa
add eax, ecx
inc al
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0x14
jb 0x414210
mov eax, dword [edi]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414270
movzx ecx, word [ebx]
test cx, cx
je 0x414423
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [ebx + edx + 2]
add edx, 2
test cx, cx
jne 0x414290
jmp 0x414421
mov ebx, dword [esi + 0x154]
mov dword [ebx], 0x4b274d7e
mov dword [ebx + 4], 0x573b4930
mov word [ebx + 8], 0x5554
mov dword [ebx + 0xe], 0
mov dword [ebx + 0xa], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x11
ja 0x414314
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0xd5379ca]
add eax, 0xca
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x7a
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x12
jb 0x4142e0
mov edi, dword [esi + 0x20]
mov eax, dword [edi]
add eax, 0xfffffffe
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414320
movzx ecx, word [ebx]
test cx, cx
je 0x414423
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [ebx + edx + 2]
add edx, 2
test cx, cx
jne 0x414340
jmp 0x414421
mov ebx, dword [esi + 0xc0]
mov dword [ebx], 0xcb76cd3e
mov dword [ebx + 4], 0xc772c97c
mov word [ebx + 8], 0xc5c4
mov eax, dword [esi + 0x100]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x15
ja 0x4143dc
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [ebx + ecx]
mov edx, eax
and edx, 0x3e259422
xor eax, 0x3e259422
lea eax, [eax + edx*2]
lea edx, [eax + ecx]
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x10], edx
mov eax, dword [esi + 0x10]
add al, 0x12
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x16
jb 0x4143a0
mov edi, dword [esi + 0x20]
mov eax, dword [edi]
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x4143f0
movzx ecx, word [ebx]
test cx, cx
je 0x414423
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [ebx + edx + 2]
add edx, 2
test cx, cx
jne 0x414410
add eax, edx
mov word [eax], 0
mov edx, dword [esi + 0x3c]
mov ebx, dword [esi + 0x38]
mov edi, dword [edi]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push edx
push edi
call fcn.0043bab0
add esp, 0x1c
mov dword [ebx], eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x442bd0]
mov edi, dword [esi + 0x30]
push dword [edi]
call fcn.00437830
add esp, 4
mov dword [edi], 0
mov eax, dword [esi + 0x38]
mov ecx, dword [eax]
not ecx
shr ecx, 0x1f
xor eax, eax
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x70]
mov ebx, dword [esi + 0x2c]
jmp dword [ecx*4 + 0x442be8]
mov edx, dword [esi + 0x5c]
mov eax, dword [edx]
xor ecx, ecx
cmp eax, 1
sete cl
jmp dword [ecx*4 + 0x442bf0]
xor ecx, ecx
cmp eax, 2
sete cl
mov eax, 1
mov edx, dword [esi + 0x28]
jmp dword [ecx*4 + 0x442c40]
jmp dword [eax*4 + 0x442c48]
push 0
mov eax, dword [esi + 0x58]
push dword [eax]
mov eax, dword [esi + 0x30]
push dword [eax]
mov edi, dword [esi + 0x3c]
push dword [edi]
call fcn.0043c270
add esp, 0x10
mov ecx, dword [esi + 0x38]
mov dword [ecx], eax
mov edi, dword [edi]
jmp dword [0x442bdc]
mov dword [esi + 0x10], 0xaaa5a4a7
lea eax, [esi + 0x14]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x414549
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9de9b2c5
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x9d
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x414510
mov eax, dword [0x4489e0]
test eax, eax
je case.0x413c04.35
mov ecx, dword [esi + 0x10]
xor edx, edx
mov ebx, dword [0x4489e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0xad91fd63
je 0x414bd2
inc edx
cmp eax, edx
jne 0x414570
jmp case.0x413c04.35
mov dword [edx], 0
mov ebx, dword [esi + 0x88]
mov word [ebx], 0x272c
mov byte [ebx + 2], 0xb4
mov eax, dword [esi + 0x124]
mov dword [eax + 3], 0
mov dword [eax], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x414603
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add eax, 0x69
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9daffb69
mov dword [esi + 0x10], ecx
mov eax, dword [esi + 0x10]
add al, 0x21
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x4145c0
mov ebx, dword [esi + 0x78]
push dword [esi + 0x88]
push dword [edi]
call fcn.004026c0
add esp, 8
mov dword [ebx], eax
mov edx, dword [esi + 0x9c]
mov word [edx], 0x4375
mov byte [edx + 2], 0xd0
mov eax, dword [esi + 0x120]
mov dword [eax], 0
mov dword [eax + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x414689
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x23]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x9c]
add eax, 0x7d892a23
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xb
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x414650
push edx
push dword [edi]
call fcn.004026c0
add esp, 8
mov ecx, dword [esi + 0x44]
mov dword [ecx], eax
mov ecx, dword [esi + 0x20]
mov ecx, dword [ecx]
mov edx, 0xfffffffe
mov edi, dword [esi + 0xcc]
nop
nop
nop
nop
nop
nop
nop
cmp word [ecx + edx + 2], 0
lea edx, [edx + 2]
jne case.default.0x4146ca
sar edx, 1
mov dword [edi], edx
mov ecx, dword [ebx]
xor ebx, ebx
test ecx, ecx
setne bl
xor edx, edx
jmp dword [ebx*4 + 0x442bf8]
mov edi, ecx
jmp dword [0x442c04]
mov edx, ecx
nop
nop
nop
nop
nop
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x4146e0
mov edi, ecx
nop
nop
nop
nop
nop
nop
mov edx, edi
inc edi
cmp byte [edx], 0
jne case.0x413c04.45
sub edx, ecx
inc edx
mov edi, ecx
jmp dword [0x442c08]
mov ecx, dword [esi + 0x7c]
mov dword [ecx], edx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442c10]
xor ecx, ecx
mov ebx, dword [esi + 0x2c]
jmp 0x41495b
mov edi, dword [esi + 0x20]
mov eax, dword [edi]
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx + 2], 0
lea ecx, [ecx + 2]
jne 0x414730
lea eax, [ecx + 0x3c]
cmp ecx, 0xffffffc3
jge 0x414748
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [ebx], eax
mov edx, dword [esi + 0x6c]
mov dword [edx], 0x9b9a99ba
mov eax, dword [esi + 0xfc]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x4147b6
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x14]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x6c]
add eax, 0xff636014
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0x74
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x414780
mov eax, dword [edi]
mov edx, dword [esi + 0x54]
mov dword [edx], 0x93e191e6
mov dword [edx + 4], 0x9ff39deb
mov dword [edx + 8], 0x9be599ec
mov dword [edx + 0xc], 0xa7cba5f2
mov dword [edx + 0x10], 0xa3d4a1d2
mov dword [edx + 0x14], 0xaf9bad82
mov dword [edx + 0x18], 0xabd0a9c1
mov dword [edx + 0x1c], 0xb7d9b5c5
mov dword [edx + 0x20], 0xb3d2b196
mov dword [edx + 0x24], 0xbfccbdc9
mov dword [edx + 0x28], 0xbbc5b9dd
mov dword [edx + 0x2c], 0xc7e4c5c7
mov dword [edx + 0x30], 0xc3aec1f1
mov dword [edx + 0x34], 0xcfeecde2
mov word [edx + 0x38], 0xc9ce
mov ecx, dword [esi + 0xf8]
mov byte [ecx + 0xc], 0
mov dword [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x46
ja 0x4148a6
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x54]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0x9ab66213
add ecx, 0x9ab66213
and ecx, edi
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov dword [esi + 0x10], ecx
mov ecx, dword [esi + 0x10]
mov edx, ecx
xor edx, 0x7a
and ecx, 0x7a
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x54]
mov byte [edi + edx], cl
mov edx, dword [esi + 0x54]
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x47
jb 0x414850
mov ecx, dword [ebx]
movzx edx, word [edx]
test dx, dx
je 0x4148d1
mov edi, dword [esi + 0xf4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x4148c0
mov word [ecx], 0
movzx edx, word [eax]
test dx, dx
je 0x414901
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [eax]
add eax, 2
test dx, dx
jne 0x4148f0
mov word [ecx], 0
mov eax, dword [esi + 0x6c]
movzx eax, word [eax]
test ax, ax
je 0x414931
mov edx, dword [esi + 0xf0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], ax
add ecx, 2
movzx eax, word [edx]
add edx, 2
test ax, ax
jne 0x414920
mov word [ecx], 0
mov eax, 1
mov edx, dword [esi + 0x28]
jmp dword [eax*4 + 0x442c48]
mov edx, eax
mov ebx, dword [esi + 0x2c]
nop
nop
nop
nop
nop
nop
mov ecx, edx
inc edx
cmp byte [ecx], 0
jne 0x414950
sub ecx, eax
inc ecx
mov eax, dword [esi + 0x48]
mov dword [eax], ecx
mov edx, dword [esi + 0x98]
mov dword [edx], 0xf367cd5a
mov dword [edx + 4], 0xf712f162
mov dword [edx + 8], 0xfb16f518
mov dword [edx + 0xc], 0xff28f92f
mov word [edx + 0x10], 0xfdfc
mov dword [edx + 0x16], 0
mov dword [edx + 0x12], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x19
ja 0x4149ec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx ecx, byte [edx + ecx]
lea edx, [eax + 0x9e]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
mov edx, dword [esi + 0x98]
add eax, 0x5075409e
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x10]
add al, 0xae
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x1a
jb 0x4149b0
mov eax, edx
mov edx, dword [esi + 0x84]
mov edi, edx
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, dword [esi + 0x11c]
mov edi, dword [esi + 0x118]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
cmp word [edx + eax + 2], 0
lea eax, [eax + 2]
jne 0x414a20
sar eax, 1
mov ecx, dword [esi + 0xcc]
add eax, dword [ecx]
mov ecx, dword [esi + 0x7c]
add eax, dword [ecx]
mov ecx, dword [esi + 0x48]
mov ecx, dword [ecx]
add eax, ecx
inc eax
mov ecx, eax
and ecx, 1
xor eax, 1
lea ecx, [eax + ecx*2]
lea eax, [ecx + ecx]
test ecx, ecx
mov edi, dword [esi + 0x20]
jns 0x414a5c
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov dword [ebx], eax
mov ecx, dword [esi + 0x84]
movzx ecx, word [ecx]
test cx, cx
je 0x414a93
mov edx, dword [esi + 0x108]
mov ebx, dword [esi + 0x78]
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414a80
jmp 0x414a96
mov ebx, dword [esi + 0x78]
mov word [eax], 0x20
lea ecx, [eax + 4]
mov edx, dword [esi + 0x34]
mov dword [edx], ecx
mov word [eax + 2], 0x22
mov eax, dword [edi]
movzx edx, word [eax]
test dx, dx
je 0x414ad1
lea edi, [eax + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx], dx
add ecx, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x414ac0
lea edx, [ecx + 2]
mov edi, dword [esi + 0x34]
mov dword [edi], edx
mov word [ecx], 0x22
jmp dword [0x442c18]
push eax
call fcn.00408ca0
add esp, 4
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov edi, dword [ebx]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x442c20]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx]
lea edx, [eax + 2]
mov dword [ecx], edx
mov word [eax], 0x2c
mov ecx, dword [esi + 0x7c]
mov ecx, dword [ecx]
mov ebx, 0xffffffff
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x414b20
mov dword [esi + 0x10], 0
cmp ecx, 2
jl 0x414b7e
test ebx, ebx
jle 0x414b7e
add ebx, edi
lea eax, [eax + ecx*2]
mov dword [esi + 0x24], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x414b7e
lea eax, [esi + 0x10]
push eax
push ebx
push edi
mov dword [esi + 0xc], edx
call fcn.0040ef00
mov edx, dword [esi + 0xc]
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 0x24]
jae 0x414b7e
add edi, eax
cmp edi, ebx
jb 0x414b50
mov word [edx], 0
mov eax, edx
mov edx, dword [esi + 0x34]
mov dword [edx], eax
mov eax, dword [esi + 0x44]
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x442c28]
mov eax, dword [esi + 0x20]
mov dword [eax], 0
mov edi, dword [ebx]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x442c20]
mov eax, dword [esi + 0x44]
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
mov edx, dword [esi + 0x34]
jmp dword [eax*4 + 0x442c28]
jmp dword [0x442c30]
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je case.0x413c04.35
push edi
push 1
push dword [0x4489e8]
push eax
call fcn.00439450
add esp, 0x10
jmp case.0x413c04.35
jmp dword [0x442be4]
mov dword [esi + 0x10], 0xaaa5a4a7
mov dword [esi + 0x14], 0
mov dword [esi + 0x18], 0
mov word [esi + 0x1c], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x414c59
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9de9b2c5
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x9d
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x414c20
mov eax, dword [0x4489e0]
test eax, eax
je 0x414bf0
mov ecx, dword [esi + 0x10]
xor edx, edx
mov ebx, dword [0x4489e4]
nop
nop
nop
cmp dword [ebx + edx*8], 0xad91fd63
je 0x414c90
inc edx
cmp eax, edx
jne 0x414c70
jmp 0x414bf0
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x414bf0
push edi
push 1
push dword [0x4489e8]
push eax
call fcn.00439450
add esp, 0x10
jmp 0x414bf0
mov eax, dword [esi + 0x58]
mov word [edx], 0
mov eax, dword [eax]
mov ecx, eax
and ecx, 1
xor eax, 1
lea edx, [eax + ecx*2]
lea ecx, [eax + ecx*2]
add ecx, 0x18
lea eax, [edx + edx]
add eax, 0x30
test ecx, ecx
jns 0x414cdd
mov eax, 0xffffffff
push eax
call fcn.00408c90
add esp, 4
mov ecx, dword [esi + 0x2c]
mov dword [ecx], eax
mov ecx, dword [esi + 0x80]
mov ecx, dword [ecx]
mov ebx, dword [esi + 0x68]
mov dword [ebx], 0xbb09b906
mov dword [ebx + 4], 0xbf1bbd03
mov dword [ebx + 8], 0x8335810c
mov dword [ebx + 0xc], 0x8723852a
mov dword [ebx + 0x10], 0x8b24892a
mov dword [ebx + 0x14], 0x8fe38dea
mov dword [ebx + 0x18], 0x93289129
mov dword [ebx + 0x1c], 0x97319535
mov dword [ebx + 0x20], 0x9b3a99f6
mov dword [ebx + 0x24], 0x9f2c9d21
mov dword [ebx + 0x28], 0xe355e13d
mov dword [ebx + 0x2c], 0xe784e557
mov word [ebx + 0x30], 0xe9e6
mov edx, dword [esi + 0x114]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov word [edx + 0xc], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0x3f
ja 0x414dbe
nop
nop
mov edx, dword [esi + 4]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x68]
movzx ebx, byte [ebx + edi]
lea edi, [edx - 0x5b803569]
add edx, 0x97
or edx, edi
and edx, ebx
or edi, ebx
mov ebx, dword [esi + 0x68]
sub edi, edx
mov dword [esi + 0x10], edi
mov edx, dword [esi + 0x10]
add dl, 0xdf
mov edi, dword [esi + 4]
mov byte [ebx + edi], dl
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, 0x40
jb 0x414d80
movzx edx, word [ebx]
test dx, dx
je 0x414de1
mov edi, dword [esi + 0x104]
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [edi]
add edi, 2
test dx, dx
jne 0x414dd0
mov word [eax], 0
movzx edx, word [ecx]
test dx, dx
mov edi, dword [esi + 0x80]
je 0x414e13
add ecx, 2
mov ebx, dword [esi + 0x2c]
nop
nop
nop
nop
nop
nop
mov word [eax], dx
add eax, 2
movzx edx, word [ecx]
add ecx, 2
test dx, dx
jne 0x414e00
jmp 0x414e16
mov ebx, dword [esi + 0x2c]
mov word [eax], 0
mov edi, dword [edi]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x442c70]
jmp dword [0x442c7c]
push edi
call fcn.00408ca0
add esp, 4
nop
nop
nop
nop
nop
nop
push edi
call fcn.00408ca0
add esp, 4
jmp dword [0x442c84]
mov eax, dword [case.0x413c04.68]
mov edx, dword [esi + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [case.0x413c04.63]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x442ca8]
xor ecx, ecx
cmp eax, 2
setl cl
mov edi, dword [esi + 0x30]
jmp dword [ecx*4 + 0x442cb0]
sete al
movzx eax, al
jmp dword [eax*4 + 0x442cb8]
mov eax, dword [esi + 0x10c]
mov dword [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov edi, dword [esi + 0xc4]
mov dword [edi], 0x44
push 0x89047569
push dword [0x4489d4]
call fcn.0043b080
add esp, 8
mov dword [esi + 0xc], eax
mov eax, dword [ebx]
mov dword [esi + 0x24], eax
mov ebx, dword [esi + 0xb4]
jmp dword [0x442d00]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442cc0]
mov eax, dword [case.0x413c04.101]
nop
jmp eax
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442d28]
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442d30]
push eax
call fcn.00408ca0
add esp, 4
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edx, ebx
jmp dword [ecx*4 + 0x442d38]
xor eax, eax
mov ecx, dword [esi + 0xe0]
cmp dword [ecx], 0
sete al
mov edi, dword [esi + 0x30]
jmp dword [eax*4 + 0x442cc8]
push 0x51b4a2b7
push dword [0x4489d4]
mov ebx, edx
call fcn.0043b080
add esp, 8
push 0
push 0
push dword [edi]
push 0x41d1b0
push 0
push 0
call eax
mov edi, eax
mov eax, dword [esi + 0x94]
mov dword [eax], edi
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x442ce8]
jmp dword [0x442cf4]
mov eax, dword [esi + 0x110]
mov dword [eax + 0x3c], 0
mov dword [eax + 0x38], 0
mov dword [eax + 0x34], 0
mov dword [eax + 0x30], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x28], 0
mov dword [eax + 0x24], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov edi, dword [esi + 0xc8]
mov dword [edi], 0x44
push 0x89047569
push dword [0x4489d4]
call fcn.0043b080
add esp, 8
push dword [esi + 0xb8]
push edi
push 0
push 0
push 0
push 0
push 0
push 0
push dword [ebx]
mov ecx, dword [esi + 0x20]
push dword [ecx]
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442cd0]
mov eax, dword [esi + 0xb8]
mov eax, dword [eax]
mov dword [esi + 0x10], 0xaaa5a4a7
lea ecx, [esi + 0x14]
mov word [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xd
ja 0x41513b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edi, byte [esi + edx + 0x10]
lea edx, [ecx + edi]
add ecx, 0xc5
and ecx, edi
add ecx, ecx
sub edx, ecx
add edx, 0x9de9b2c5
mov dword [esi + 4], edx
mov ecx, dword [esi + 4]
add cl, 0x9d
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xe
jb 0x415100
mov ecx, dword [0x4489e0]
test ecx, ecx
je case.0x413c04.96
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x4489e4]
cmp dword [ebx + edi*8], 0xad91fd63
je 0x415160
inc edi
cmp ecx, edi
jne 0x415150
jmp case.0x413c04.96
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
jne 0x415186
jmp dword [0x442cdc]
jmp dword [0x442ce4]
jmp dword [0x442ce4]
push eax
push 1
push dword [0x4489e8]
push ecx
call fcn.00439450
add esp, 0x10
jmp dword [0x442cdc]
mov edx, dword [esi + 0x28]
mov ebx, dword [esi + 0x2c]
mov eax, 1
jmp dword [eax*4 + 0x442c48]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442d10]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442d28]
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
mov dword [esi + 0x10], 0xaaa5a4a7
lea ecx, [esi + 0x14]
mov word [ecx + 8], 0
mov dword [ecx + 4], 0
mov dword [ecx], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xd
ja 0x41524b
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edi, byte [esi + edx + 0x10]
lea edx, [ecx + edi]
add ecx, 0xc5
and ecx, edi
add ecx, ecx
sub edx, ecx
add edx, 0x9de9b2c5
mov dword [esi + 4], edx
mov ecx, dword [esi + 4]
add cl, 0x9d
mov edx, dword [esi + 8]
mov byte [esi + edx + 0x10], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xe
jb 0x415210
mov ecx, dword [0x4489e0]
test ecx, ecx
je case.0x413c04.101
mov edx, dword [esi + 0x10]
xor edi, edi
mov ebx, dword [0x4489e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x415283
inc edi
cmp ecx, edi
jne 0x415270
jmp case.0x413c04.101
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x413c04.101
push eax
push 1
push dword [0x4489e8]
push ecx
call fcn.00439450
add esp, 0x10
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov ebx, dword [esi + 0x28]
mov edi, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442d28]
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edx, ebx
jmp dword [ecx*4 + 0x442d38]
push eax
mov edi, edx
call fcn.00408ca0
mov edx, edi
add esp, 4
jmp case.0x4152b3.6
mov ecx, dword [esi + 0x48]
mov eax, dword [edx]
lea ebx, [eax + 2]
mov dword [esi + 0xc], ebx
mov dword [edx], ebx
mov word [eax], 0x2c
mov ecx, dword [ecx]
mov ebx, 0xffffffff
nop
nop
nop
nop
nop
nop
cmp byte [edi + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x415300
mov dword [esi + 0x10], 0
cmp ecx, 2
jl 0x415360
test ebx, ebx
jle 0x415360
add ebx, edi
lea eax, [eax + ecx*2]
mov dword [esi + 0x24], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x415360
lea eax, [esi + 0x10]
push eax
push ebx
push edi
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x24]
mov dword [esi + 0xc], ecx
jae 0x415360
add edi, eax
cmp edi, ebx
jb 0x415330
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov edx, dword [esi + 0x34]
mov dword [edx], eax
jmp dword [0x442c38]
mov eax, dword [edx]
lea ecx, [eax + 2]
mov dword [esi + 0xc], ecx
mov dword [edx], ecx
mov word [eax], 0x2c
mov ecx, dword [esi + 0x44]
mov ebx, dword [ecx]
mov ecx, dword [esi + 0x48]
mov ecx, dword [ecx]
mov edi, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + edi + 1], 0
lea edi, [edi + 1]
jne 0x4153a0
mov dword [esi + 0x10], 0
cmp ecx, 2
jl 0x415400
test edi, edi
jle 0x415400
add edi, ebx
lea eax, [eax + ecx*2]
mov dword [esi + 0x24], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x415400
lea eax, [esi + 0x10]
push eax
push edi
push ebx
call fcn.0040ef00
add esp, 0xc
movzx ecx, word [esi + 0x10]
mov edx, dword [esi + 0xc]
mov word [edx], cx
mov ecx, edx
add ecx, 2
cmp ecx, dword [esi + 0x24]
mov dword [esi + 0xc], ecx
jae 0x415400
add ebx, eax
cmp ebx, edi
jb 0x4153d0
mov eax, dword [esi + 0xc]
mov word [eax], 0
mov edx, dword [esi + 0x34]
mov dword [edx], eax
mov eax, dword [esi + 0x44]
mov edi, dword [eax]
jmp case.0x414b96.2
mov eax, dword [esi + 0x40]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xb8797400
mov eax, dword [esi + 0x94]
mov edi, dword [eax]
mov dword [esi + 0x10], 0xaaa5a4a7
lea eax, [esi + 0x14]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x415499
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9de9b2c5
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x9d
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x415460
mov eax, dword [0x4489e0]
test eax, eax
je 0x4154df
mov ecx, dword [esi + 0x10]
xor edx, edx
mov ebx, dword [0x4489e4]
nop
nop
nop
cmp dword [ebx + edx*8], 0x10c53004
je 0x4154c0
inc edx
cmp eax, edx
jne 0x4154b0
jmp 0x4154df
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x4154df
push dword [esi + 0x40]
push 0
push edi
push 3
push dword [0x4489e8]
push eax
call fcn.00439450
add esp, 0x18
mov dword [esi + 0x10], 0xaaa5a4a7
lea eax, [esi + 0x14]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x415549
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9de9b2c5
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x9d
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x415510
mov eax, dword [0x4489e0]
test eax, eax
je 0x41558a
mov ecx, dword [esi + 0x10]
xor edx, edx
mov ebx, dword [0x4489e4]
nop
nop
nop
cmp dword [ebx + edx*8], 0xad91fd63
je 0x415570
inc edx
cmp eax, edx
jne 0x415560
jmp 0x41558a
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41558a
push edi
push 1
push dword [0x4489e8]
push eax
call fcn.00439450
add esp, 0x10
mov eax, dword [esi + 0x94]
mov edi, dword [eax]
mov eax, dword [esi + 0x40]
mov dword [eax + 4], 0xffffffff
mov dword [eax], 0xb8797400
mov dword [esi + 0x10], 0xaaa5a4a7
lea eax, [esi + 0x14]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x415609
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9de9b2c5
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x9d
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x4155d0
mov eax, dword [0x4489e0]
test eax, eax
je 0x41564f
mov ecx, dword [esi + 0x10]
xor edx, edx
mov ebx, dword [0x4489e4]
nop
nop
nop
cmp dword [ebx + edx*8], 0x10c53004
je 0x415630
inc edx
cmp eax, edx
jne 0x415620
jmp 0x41564f
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x41564f
push dword [esi + 0x40]
push 0
push edi
push 3
push dword [0x4489e8]
push eax
call fcn.00439450
add esp, 0x18
mov dword [esi + 0x10], 0xaaa5a4a7
lea eax, [esi + 0x14]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x4156b9
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [esi + ecx + 0x10]
lea ecx, [eax + edx]
add eax, 0xc5
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x9de9b2c5
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
add al, 0x9d
mov ecx, dword [esi + 8]
mov byte [esi + ecx + 0x10], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x415680
mov eax, dword [0x4489e0]
test eax, eax
je 0x4156fa
mov ecx, dword [esi + 0x10]
xor edx, edx
mov ebx, dword [0x4489e4]
nop
nop
nop
cmp dword [ebx + edx*8], 0xad91fd63
je 0x4156e0
inc edx
cmp eax, edx
jne 0x4156d0
jmp 0x4156fa
mov eax, dword [ebx + edx*8 + 4]
cmp eax, ecx
je 0x4156fa
push edi
push 1
push dword [0x4489e8]
push eax
call fcn.00439450
add esp, 0x10
mov ebx, dword [esi + 0x28]
jmp dword [0x442cf8]
mov eax, dword [esi + 0x30]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x20]
jmp dword [ecx*4 + 0x442d28]
push eax
call fcn.00437830
add esp, 4
mov eax, dword [edi]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442d30]
push ebx
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x24]
push 0
call dword [esi + 0xc]
push ebx
push edi
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x24]
push 0
call dword [esi + 0xc]
jmp dword [0x442d08]
mov ecx, dword [case.0x41202b.35]
mov al, 1
jmp ecx
mov dword [esi + 0x40], edi
mov dword [esi + 0x68], ebx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442b08]
mov eax, dword [esi + 0xc8]
add eax, 4
mov dword [esi + 0x110], eax
mov eax, dword [esi + 0xc4]
add eax, 4
mov dword [esi + 0x10c], eax
mov eax, dword [esi + 0x90]
add eax, 2
mov dword [esi + 0x12c], eax
mov edx, dword [esi + 0x84]
mov eax, edx
add eax, 2
mov dword [esi + 0x108], eax
mov eax, dword [esi + 0xe4]
add eax, 2
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0xac]
lea eax, [eax + 3]
mov dword [esi + 0x14c], eax
mov eax, dword [esi + 0xdc]
lea eax, [eax + 2]
mov dword [esi + 0x13c], eax
mov eax, dword [esi + 0xa8]
lea eax, [eax + 2]
mov dword [esi + 0x148], eax
mov eax, dword [esi + 0xa4]
lea eax, [eax + 3]
mov dword [esi + 0x144], eax
mov eax, dword [esi + 0x74]
lea eax, [eax + 2]
mov dword [esi + 0x140], eax
mov eax, dword [esi + 0xd4]
lea eax, [eax + 4]
mov dword [esi + 0x134], eax
mov eax, dword [esi + 0xd0]
lea ecx, [eax + 0x10]
mov dword [esi + 0x130], ecx
mov ecx, dword [esi + 0xc0]
lea ecx, [ecx + 0xa]
mov dword [esi + 0x100], ecx
mov ecx, dword [esi + 0xbc]
lea ecx, [ecx + 0xa]
mov dword [esi + 0xec], ecx
mov ecx, dword [esi + 0x88]
lea ecx, [ecx + 3]
mov dword [esi + 0x124], ecx
mov ecx, dword [esi + 0x9c]
lea ecx, [ecx + 3]
mov dword [esi + 0x120], ecx
mov ecx, dword [esi + 0x98]
lea ecx, [ecx + 0x10]
mov dword [esi + 0x11c], ecx
lea ecx, [edx + 0x10]
mov dword [esi + 0x118], ecx
mov ecx, dword [esi + 0x6c]
lea edx, [ecx + 4]
mov dword [esi + 0xfc], edx
mov edx, dword [esi + 0x54]
lea edi, [edx + 0x3a]
mov dword [esi + 0xf8], edi
mov edi, dword [esi + 0x68]
lea ebx, [edi + 0x32]
mov dword [esi + 0x114], ebx
add eax, 2
mov dword [esi + 0x128], eax
lea eax, [edx + 2]
mov edx, dword [esi + 0x28]
mov dword [esi + 0xf4], eax
lea eax, [ecx + 2]
mov dword [esi + 0xf0], eax
lea eax, [edi + 2]
mov dword [esi + 0x104], eax
xor edi, edi
mov eax, dword [esi + 0xe8]
jmp 0x413729
xor eax, eax
jmp dword [0x442b1c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [ebp + 8]
call fcn.004027d0
add esp, 4
push eax
mov dword [esi + 0x28], esp
push eax
mov dword [esi + 0xe8], esp
push eax
mov dword [esi + 0x70], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xe4], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xac], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xdc], eax
mov esp, eax
push eax
mov dword [esi + 0x15c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa8], eax
mov esp, eax
push eax
mov dword [esi + 0x5c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa4], eax
mov esp, eax
push eax
mov dword [esi + 0xe0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x74], eax
mov esp, eax
push eax
sub esp, 0x3fc
mov dword [esi + 0xa0], esp
push eax
mov dword [esi + 0x20], esp
push eax
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x58], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x158], eax
mov esp, eax
push eax
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x4c], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd4], eax
mov esp, eax
push eax
sub esp, 0x3c
mov dword [esi + 0x90], esp
sub esp, 0x60
mov dword [esi + 0xd8], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xd0], eax
mov esp, eax
push eax
mov dword [esi + 0x8c], esp
sub esp, 0x18
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x154], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xc0], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xbc], eax
mov esp, eax
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x78], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x88], eax
mov esp, eax
push eax
mov dword [esi + 0x44], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x9c], eax
mov esp, eax
push eax
mov dword [esi + 0xcc], esp
push eax
mov dword [esi + 0x7c], esp
push eax
mov dword [esi + 0x48], esp
sub esp, 0x14
mov dword [esi + 0x84], esp
sub esp, 0x20
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x98], eax
mov esp, eax
push eax
mov dword [esi + 0x34], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x6c], eax
mov esp, eax
push eax
sub esp, 0x44
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x54], eax
mov esp, eax
push eax
mov dword [esi + 0x80], esp
sub esp, 0x40
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
sub esp, 0x40
mov dword [esi + 0xc8], esp
sub esp, 0x10
mov dword [esi + 0xb8], esp
push eax
mov dword [esi + 0x94], esp
sub esp, 8
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x40
mov dword [esi + 0xc4], esp
sub esp, 0x10
mov dword [esi + 0xb4], esp
push dword [ebp + 8]
call fcn.004027d0
mov ecx, dword [esi + 0x28]
add esp, 4
mov dword [ecx], eax
jmp dword [0x442b04]