Function at 0x41159e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x140
mov esi, esp
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x9c], eax
mov esp, eax
push eax
sub esp, 0x24
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x20], eax
mov esp, eax
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x98], esp
sub esp, 0x70
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa0], eax
mov esp, eax
push eax
sub esp, 0x204
mov dword [esi + 0xb4], esp
push eax
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x94], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x84], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x70], eax
mov esp, eax
push eax
mov dword [esi + 0x40], esp
sub esp, 0x10
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 + 0x74], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x34], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov esp, eax
push eax
sub esp, 0x64
mov ecx, esp
and ecx, 0xfffffff8
mov esp, ecx
push eax
sub esp, 0x64
mov edx, esp
and edx, 0xfffffff8
mov esp, edx
push eax
sub esp, 0x64
mov edi, esp
and edi, 0xfffffff8
mov esp, edi
push eax
sub esp, 0x64
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x38], ebx
mov esp, ebx
push eax
sub esp, 0x20
mov dword [esi + 0x44], esp
sub esp, 0x100
mov dword [esi + 0x30], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x8c], ebx
mov esp, ebx
push eax
sub esp, 0xc
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x68], ebx
mov esp, ebx
push eax
sub esp, 0x24
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x3c], ebx
mov esp, ebx
push eax
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x60], esp
sub esp, 0x70
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x5c], ebx
mov esp, ebx
push eax
sub esp, 0x14
mov ebx, esp
and ebx, 0xfffffff8
mov dword [esi + 0x78], ebx
mov esp, ebx
mov dword [esi + 0x7c], edi
mov dword [esi + 0x90], edx
mov dword [esi + 0x80], ecx
mov dword [esi + 0x28], eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xb0], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x88], eax
mov esp, eax
push eax
sub esp, 0x14
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x58], eax
mov esp, eax
push eax
sub esp, 0x7fc
mov dword [esi + 0x54], esp
sub esp, 0x88
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0xa4], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0xa8], esp
sub esp, 0x10
mov dword [esi + 0x50], esp
mov ecx, dword [str.778c11ba7f79ed1c3a553ede8aa8d2ae]
mov edi, dword [esi + 0x9c]
mov dword [edi], 0x9bdf33f6
mov dword [edi + 8], 0
mov dword [edi + 4], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xb
ja 0x40ef73
nop
nop
mov eax, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea ebx, [eax + 0x3c]
and ebx, edx
add eax, edx
add ebx, ebx
sub eax, ebx
add eax, 0x9a6fc03c
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x5c
mov edx, dword [esi + 4]
mov byte [edi + edx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xc
jb 0x40ef40
mov eax, dword [str.Lb9dkQ__Puaro]
mov edi, dword [esi + 0x20]
mov dword [edi], 0xa8a0b0b1
mov dword [edi + 4], 0x908d929c
mov dword [edi + 8], 0x908d9664
mov dword [edi + 0xc], 0x80959499
mov dword [edi + 0x10], 0x71de9e9f
mov dword [edi + 0x14], 0xcbbb8f81
mov dword [edi + 0x18], 0x8fc6cdcc
mov dword [edi + 0x1c], 0xf7b3958d
mov dword [edi + 0x20], 0
mov dword [esi + 4], 0
mov edx, dword [esi + 4]
cmp edx, 0x23
ja 0x40f00f
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 4]
mov ebx, dword [esi + 4]
movzx ebx, byte [edi + ebx]
lea edi, [edx + ebx]
add edi, 0x26cd055d
add edx, 0x26cd055d
and edx, ebx
add edx, edx
sub edi, edx
mov dword [esi + 8], edi
mov edx, dword [esi + 8]
add dl, 0x75
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x20]
mov byte [ebx + edi], dl
mov edi, dword [esi + 0x20]
inc dword [esi + 4]
mov edx, dword [esi + 4]
cmp edx, 0x24
jb 0x40efd0
movzx edx, byte [edi]
test dl, dl
je 0x40f02d
inc edi
lea ebx, [esi + 0xb8]
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40f020
jmp 0x40f033
lea ebx, [esi + 0xb8]
mov byte [ebx], 0
movzx edx, byte [eax]
test dl, dl
je 0x40f05d
inc eax
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x40f050
jmp 0x40f060
mov edi, dword [esi + 0x1c]
mov byte [ebx], 0
mov edx, dword [esi + 0x9c]
movzx eax, byte [edx]
test al, al
je 0x40f08b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40f080
mov byte [ebx], 0
movzx eax, byte [ecx]
test al, al
je 0x40f0ab
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f0a0
mov byte [ebx], 0
lea ecx, [esi + 0xb8]
mov eax, dword [esi + 0x4c]
mov dword [eax], 0
mov dword [edi], 0xfb69f9c3
mov dword [edi + 4], 0xff68fd64
mov dword [edi + 8], 0xf36ef159
mov dword [edi + 0xc], 0xf7abf566
mov dword [edi + 0x10], 0xeb63e942
mov dword [edi + 0x14], 0xef4bed7a
mov dword [edi + 0x18], 0xe380e1a4
mov dword [edi + 0x1c], 0xe774e541
mov dword [edi + 0x20], 0xdb44d976
mov dword [edi + 0x24], 0xdf79dd41
mov dword [edi + 0x28], 0xd344d17d
mov dword [edi + 0x2c], 0xd745d549
mov dword [edi + 0x30], 0xcb99c948
mov dword [edi + 0x34], 0xcf93cd42
mov dword [edi + 0x38], 0xc349c147
mov dword [edi + 0x3c], 0xc79bc54b
mov dword [edi + 0x40], 0x3ba93960
mov dword [edi + 0x44], 0x3fa33da8
mov dword [edi + 0x48], 0x33a73161
mov dword [edi + 0x4c], 0x37a835a0
mov dword [edi + 0x50], 0x2bb62991
mov dword [edi + 0x54], 0x2fbd2d8f
mov dword [edi + 0x58], 0x2387218a
mov dword [edi + 0x5c], 0x275b2586
mov dword [edi + 0x60], 0x1b18195c
mov word [edi + 0x6c], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x64], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x6d
ja 0x40f1d0
nop
nop
mov eax, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [eax + 0x768fd33f]
add eax, 0x3f
and eax, edx
or edi, edx
sub edi, eax
mov dword [esi + 8], edi
mov edi, dword [esi + 0x1c]
mov eax, dword [esi + 8]
mov edx, eax
xor edx, 0x46
and eax, 0x46
lea eax, [edx + eax*2]
inc al
mov edx, dword [esi + 4]
mov byte [edi + edx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0x6e
jb 0x40f190
sub ebx, ecx
mov edi, dword [esi + 0xa0]
mov dword [edi], 0x33ab3567
mov dword [edi + 4], 0x2fa731a2
mov word [edi + 8], 0x2d2e
mov dword [edi + 0xa], 0
mov word [edi + 0xe], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xf
ja 0x40f25a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [eax + 0x4da8c589]
and edi, edx
add eax, edx
add eax, 0x4da8c589
add edi, edi
sub eax, edi
mov edi, dword [esi + 0xa0]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x41
mov edx, dword [esi + 4]
mov byte [edi + edx], al
mov eax, dword [esi + 4]
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [eax + edx*2]
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0x10
jb 0x40f210
push dword [esi + 0x98]
push dword [esi + 0x48]
push ebx
push ecx
push dword [esi + 0x1c]
push edi
push 0x447604
call fcn.0040c4e0
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x442808]
mov eax, dword [esi + 0x4c]
mov edi, dword [eax]
xor ebx, ebx
test edi, edi
sete bl
jmp dword [ebx*4 + 0x442810]
push edi
call fcn.00401f50
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x2c]
mov dword [eax], ecx
jmp dword [ebx*4 + 0x442818]
push edi
mov edi, ecx
call fcn.00408be0
mov ecx, edi
add esp, 4
push ecx
call fcn.00402870
add esp, 4
mov ebx, dword [esi + 0x94]
mov dword [ebx], eax
mov edi, dword [esi + 0x84]
mov word [edi], 0xb8b6
mov byte [edi + 2], 0x2a
mov dword [edi + 0xa], 0
mov dword [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xd
ja 0x40f34c
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x84]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0xdf17247a
add ecx, 0x7a
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov edi, dword [esi + 0x84]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0xaa
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xe
jb 0x40f300
push edi
push eax
call fcn.004028f0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x442820]
xor eax, eax
movzx eax, al
mov edi, dword [esi + 0x2c]
jmp dword [eax*4 + 0x442828]
push dword [edi]
call fcn.00402b00
add esp, 4
jmp case.0x40f3fe.1
push 0x104
push dword [esi + 0xb4]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ebx, dword [esi + 0x4c]
mov eax, dword [esi + 0x48]
mov edi, dword [eax]
mov eax, dword [esi + 0x98]
mov ecx, dword [eax]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40f3b8
cmp edx, 0x2e
jne 0x40f3b9
dec eax
cmp byte [ecx + edi - 2], 0x3d
je 0x40f3d2
mov edx, ecx
xor edx, 0xfffffffd
and ecx, 0xfffffffd
lea ecx, [edx + ecx*2]
cmp byte [edi + ecx + 1], 0x2e
jne 0x40f3d3
dec eax
push eax
call fcn.00408bd0
add esp, 4
mov dword [ebx], eax
push eax
push edi
call fcn.00434af0
add esp, 8
mov eax, dword [esi + 0x48]
push dword [eax]
call fcn.004380b0
add esp, 4
mov edi, dword [ebx]
xor ebx, ebx
test edi, edi
sete bl
jmp dword [ebx*4 + 0x442810]
xor eax, eax
jmp 0x4102b6
mov edx, dword [esi + 0x70]
mov dword [edx], 0xb3f2cdcc
mov dword [edx + 4], 0
mov byte [edx + 8], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 8
mov edi, dword [esi + 0x2c]
ja 0x40f47b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
mov edx, dword [esi + 0x70]
movzx edx, byte [edx + ecx]
lea ecx, [eax + edx]
add eax, 0x5e
and eax, edx
mov edx, dword [esi + 0x70]
add eax, eax
sub ecx, eax
add ecx, 0x67a04a5e
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0x6e
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 9
jb 0x40f440
push dword [edx]
call fcn.004337f0
add esp, 4
movzx eax, al
jmp dword [eax*4 + 0x442828]
mov edi, dword [esi + 0xac]
mov word [edi], 0x9d95
mov byte [edi + 2], 0x38
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [edi + 0xb], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x40f507
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 [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xfee63687
add eax, 0xfee63687
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x4f
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x40f4d0
push edi
push dword [ebx]
call fcn.004028f0
add esp, 8
test eax, eax
mov eax, dword [esi + 0x40]
setg byte [eax]
mov edx, dword [esi + 0x74]
mov word [edx], 0x2033
mov byte [edx + 2], 0x4a
mov dword [edx + 0xb], 0
mov dword [edx + 7], 0
mov dword [edx + 3], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x40f592
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 + 0xca]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
mov edx, dword [esi + 0x74]
add ecx, edi
neg ecx
add eax, ecx
add eax, 0xe117e5c9
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0x7a
mov ecx, dword [esi + 4]
mov byte [edx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x40f550
mov eax, dword [ebx]
push edx
mov dword [esi + 0x20], eax
push eax
call fcn.004028f0
add esp, 8
mov dword [esi + 0x1c], eax
mov edi, dword [esi + 0x90]
jmp dword [0x442834]
push dword [esi + 0x20]
call fcn.004102c0
add esp, 4
mov eax, dword [esi + 0x2c]
push dword [eax]
call fcn.00402b00
add esp, 4
mov ebx, dword [esi + 0x34]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.0041e3c0
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ebx, dword [esi + 0x28]
mov ecx, ebx
push 3
call fcn.004092a0
push ebx
call fcn.0041ee20
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ebx, dword [esi + 0x80]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.0041f070
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ecx, edi
push 1
call fcn.004092a0
push edi
call fcn.00421220
add esp, 4
push edi
call fcn.00421b40
add esp, 4
push edi
call fcn.00421ff0
add esp, 4
mov ecx, edi
call fcn.00409be0
mov ebx, dword [esi + 0x7c]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.00424170
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ebx, dword [esi + 0x38]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.004268b0
add esp, 4
push ebx
call fcn.0042dd40
add esp, 4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push dword [esi + 0x20]
call fcn.004102c0
add esp, 4
mov eax, dword [esi + 0x2c]
push dword [eax]
call fcn.00402b00
add esp, 4
mov ebx, dword [esi + 0x34]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.0041e3c0
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ebx, dword [esi + 0x28]
mov ecx, ebx
push 3
call fcn.004092a0
push ebx
call fcn.0041ee20
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ebx, dword [esi + 0x80]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.0041f070
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ecx, edi
push 1
call fcn.004092a0
push edi
call fcn.00421220
add esp, 4
push edi
call fcn.00421b40
add esp, 4
push edi
call fcn.00421ff0
add esp, 4
mov ecx, edi
call fcn.00409be0
mov ebx, dword [esi + 0x7c]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.00424170
add esp, 4
mov ecx, ebx
call fcn.00409be0
mov ebx, dword [esi + 0x38]
mov ecx, ebx
push 1
call fcn.004092a0
push ebx
call fcn.004268b0
add esp, 4
push ebx
call fcn.0042dd40
add esp, 4
jmp dword [0x442838]
xor eax, eax
cmp dword [esi + 0x1c], 0
setg al
mov edi, dword [esi + 0x38]
jmp dword [eax*4 + 0x442840]
push edi
call fcn.0042df30
add esp, 4
mov ecx, edi
call fcn.00409be0
push dword [esi + 0x44]
call fcn.00434480
add esp, 4
mov ebx, dword [esi + 0x8c]
mov dword [ebx], 0xa4bdad6c
mov word [ebx + 4], 0x72ae
mov byte [ebx + 6], 0x30
mov word [ebx + 7], 0
mov byte [ebx + 9], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 9
ja 0x40f809
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + 0x29]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x12a71828
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xe1
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xa
jb 0x40f7d0
mov eax, dword [str.778c11ba7f79ed1c3a553ede8aa8d2ae]
mov edi, dword [esi + 0x68]
mov dword [edi], 0x236f5316
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xb], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0xe
ja 0x40f87b
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [edi + edx]
lea edi, [ecx + 0x3e81aea6]
and edi, edx
add ecx, edx
add ecx, 0x3e81aea6
add edi, edi
sub ecx, edi
mov edi, dword [esi + 0x68]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0x76
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0xf
jb 0x40f840
mov edx, dword [str.Lb9dkQ__Puaro]
mov edi, dword [esi + 0x3c]
mov dword [edi], 0x3ef6c2c1
mov dword [edi + 4], 0xd8f2c0c3
mov dword [edi + 8], 0xf8f9ccc5
mov dword [edi + 0xc], 0x9cbcacd
mov dword [edi + 0x10], 0xec0f4c6
mov dword [edi + 0x14], 0x31063b00
mov dword [edi + 0x18], 0x6fef0f4
mov byte [edi + 0x1c], 0x5c
mov dword [edi + 0x1d], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x20
ja 0x40f912
nop
nop
mov ecx, dword [esi + 4]
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x3c]
movzx ebx, byte [ebx + edi]
lea edi, [ecx + ebx]
add ecx, 0xd0
and ecx, ebx
add ecx, ecx
sub edi, ecx
add edi, 0x8fff24d0
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x50
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x3c]
mov byte [ebx + edi], cl
mov edi, dword [esi + 0x3c]
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x21
jb 0x40f8d0
movzx ebx, byte [edi]
mov ecx, dword [esi + 0x30]
test bl, bl
je 0x40f92b
inc edi
mov ecx, dword [esi + 0x30]
mov byte [ecx], bl
inc ecx
movzx ebx, byte [edi]
inc edi
test bl, bl
jne 0x40f920
mov byte [ecx], 0
movzx ebx, byte [edx]
test bl, bl
mov edi, dword [esi + 0x68]
je 0x40f94b
inc edx
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], bl
inc ecx
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f940
mov byte [ecx], 0
movzx edx, byte [edi]
test dl, dl
je 0x40f96d
inc edi
mov ebx, dword [esi + 0x5c]
nop
nop
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40f960
jmp 0x40f970
mov ebx, dword [esi + 0x5c]
mov byte [ecx], 0
movzx edx, byte [eax]
test dl, dl
je 0x40f98b
inc eax
nop
nop
nop
nop
nop
mov byte [ecx], dl
inc ecx
movzx edx, byte [eax]
inc eax
test dl, dl
jne 0x40f980
mov byte [ecx], 0
mov edi, dword [esi + 0x8c]
movzx eax, byte [edi]
test al, al
je 0x40f9ad
inc edi
mov edx, dword [esi + 0x44]
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edi]
inc edi
test al, al
jne 0x40f9a0
jmp 0x40f9b0
mov edx, dword [esi + 0x44]
mov byte [ecx], 0
movzx eax, byte [edx]
test al, al
je 0x40f9cb
inc edx
nop
nop
nop
nop
nop
mov byte [ecx], al
inc ecx
movzx eax, byte [edx]
inc edx
test al, al
jne 0x40f9c0
mov byte [ecx], 0
mov edx, ecx
mov eax, dword [esi + 0x30]
xor edx, eax
not eax
and eax, ecx
add eax, eax
mov ecx, dword [esi + 0x6c]
mov dword [ecx], 0
mov dword [ebx], 0x9bed99db
mov dword [ebx + 4], 0x971a95e2
mov dword [ebx + 8], 0x93e491ed
mov dword [ebx + 0xc], 0xaf9bad20
mov dword [ebx + 0x10], 0xab23a9c4
mov dword [ebx + 0x14], 0xa7dba5d4
mov dword [ebx + 0x18], 0xa382a1ea
mov dword [ebx + 0x1c], 0xbfcebddd
mov dword [ebx + 0x20], 0xbbceb9c8
mov dword [ebx + 0x24], 0xb7d5b5cd
mov dword [ebx + 0x28], 0xb33eb1d1
mov dword [ebx + 0x2c], 0xcfb9cdb5
mov dword [ebx + 0x30], 0xcbfdc9be
mov dword [ebx + 0x34], 0xc7f3c54c
mov dword [ebx + 0x38], 0xc34dc14f
mov dword [ebx + 0x3c], 0xdfebdd53
mov dword [ebx + 0x40], 0xdbadd9a6
mov dword [ebx + 0x44], 0xd7a3d5a6
mov dword [ebx + 0x48], 0xd35fd1e5
mov dword [ebx + 0x4c], 0xef9aed9e
mov dword [ebx + 0x50], 0xeb9ce995
mov dword [ebx + 0x54], 0xe791e587
mov dword [ebx + 0x58], 0xe39fe19c
mov dword [ebx + 0x5c], 0xffebfd80
mov dword [ebx + 0x60], 0xfbfaf9e2
mov dword [ebx + 0x6b], 0
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x64], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x6e
ja 0x40faf8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edi, byte [ebx + edi]
lea ebx, [ecx + 0x14]
add ecx, edi
and ebx, edi
add ebx, ebx
sub ecx, ebx
mov ebx, dword [esi + 0x5c]
add ecx, 0xaf167c14
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0x74
mov edi, dword [esi + 4]
mov byte [ebx + edi], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x6f
jb 0x40fac0
sub eax, edx
mov edi, dword [esi + 0x78]
mov dword [edi], 0x5b3b590f
mov dword [edi + 4], 0x472f45d4
mov word [edi + 8], 0x4140
mov dword [edi + 0xa], 0
mov dword [edi + 0xe], 0
mov dword [edi + 0x12], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x15
ja 0x40fb86
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x78]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0xd0e31a4c
add ecx, 0x4c
and ecx, edi
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov edi, dword [esi + 0x78]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0xec
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x16
jb 0x40fb40
push dword [esi + 0x60]
mov ecx, edi
mov edi, dword [esi + 0x64]
push edi
push eax
push dword [esi + 0x30]
push ebx
push ecx
push 0x447604
call fcn.0040c4e0
add esp, 0x1c
movzx eax, al
mov ebx, dword [esi + 0x34]
jmp dword [eax*4 + 0x442848]
mov eax, dword [esi + 0x6c]
mov edi, dword [eax]
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x442860]
push edi
call fcn.00401f50
add esp, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x442868]
push edi
mov edi, eax
call fcn.00408be0
mov eax, edi
add esp, 4
push eax
mov edi, eax
call fcn.00413ca0
add esp, 4
push edi
call fcn.00402b00
add esp, 4
mov edi, dword [esi + 0xb0]
mov dword [edi], 0xa339c33a
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xb], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0xe
ja 0x40fc67
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add eax, 0xbb
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xc0fc0bb
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
add al, 0xe3
mov ecx, dword [esi + 4]
mov byte [edi + ecx], al
inc dword [esi + 4]
mov eax, dword [esi + 4]
cmp eax, 0xf
jb 0x40fc30
push edi
mov eax, dword [esi + 0x94]
push dword [eax]
call fcn.004028f0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov edi, dword [esi + 0x28]
jmp dword [ecx*4 + 0x442870]
mov eax, dword [esi + 0x40]
movzx eax, byte [eax]
jmp dword [eax*4 + 0x442878]
jmp dword [0x442854]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax]
mov edi, dword [edi]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40fcb8
cmp edx, 0x2e
jne 0x40fcb9
dec eax
cmp byte [ecx + edi - 2], 0x3d
je 0x40fcd2
mov edx, ecx
xor edx, 0xfffffffd
and ecx, 0xfffffffd
lea ecx, [edx + ecx*2]
cmp byte [edi + ecx + 1], 0x2e
jne 0x40fcd3
dec eax
push eax
call fcn.00408bd0
add esp, 4
push eax
push edi
call fcn.00434af0
add esp, 8
mov edi, dword [esi + 0x64]
push dword [edi]
call fcn.004380b0
add esp, 4
jmp case.0x40fba8.3
dec eax
push eax
call fcn.00408bd0
add esp, 4
mov ecx, dword [esi + 0x6c]
mov dword [ecx], eax
push eax
push edi
call fcn.00434af0
add esp, 8
mov edi, dword [esi + 0x64]
push dword [edi]
call fcn.004380b0
add esp, 4
jmp dword [0x442858]
mov eax, dword [esi + 0x60]
mov ecx, dword [eax]
mov edi, dword [edi]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40fd48
cmp edx, 0x2e
jne 0x40fd49
dec eax
cmp byte [ecx + edi - 2], 0x3d
je 0x40fd00
mov edx, ecx
xor edx, 0xfffffffd
and ecx, 0xfffffffd
lea ecx, [edx + ecx*2]
cmp byte [edi + ecx + 1], 0x2e
je 0x40fd00
jmp 0x40fd01
mov ecx, dword [esi + 0x88]
push 1
call fcn.004092a0
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x44790d], 0
lea eax, [eax + 1]
jne 0x40fd80
lea eax, [eax + 0x44790c]
mov ecx, 0x44790c
not ecx
mov edx, eax
xor edx, ecx
and ecx, eax
lea eax, [edx + ecx*2]
inc eax
mov edi, dword [esi + 0x58]
mov dword [edi], 0xf6c0c424
mov dword [edi + 4], 0xfff20bc3
mov word [edi + 8], 0x69fc
mov dword [edi + 0xe], 0
mov dword [edi + 0xa], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x11
ja 0x40fe37
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
mov edi, dword [esi + 0x58]
movzx edi, byte [edi + edx]
lea edx, [ecx + edi]
add edx, 0xb3bbc1d0
add ecx, 0xb3bbc1d0
and ecx, edi
add ecx, ecx
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov edi, dword [esi + 0x58]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 8]
add cl, 0x50
mov edx, dword [esi + 4]
mov byte [edi + edx], cl
mov ecx, dword [esi + 4]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
cmp ecx, 0x12
jb 0x40fde0
mov edx, edi
mov edi, dword [esi + 0x88]
mov ecx, edi
push eax
push 0x44790c
push edx
call fcn.004094a0
mov ecx, edi
call fcn.00409be0
mov ecx, edi
call fcn.004092e0
mov eax, dword [esi + 0x40]
movzx eax, byte [eax]
mov edi, dword [esi + 0x28]
jmp dword [eax*4 + 0x442878]
push 0
call fcn.0043b540
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442880]
mov ebx, dword [esi + 0xa4]
mov dword [ebx], 0xc36fc163
mov dword [ebx + 4], 0xc728c560
mov dword [ebx + 8], 0xcb72c96d
mov dword [ebx + 0xc], 0xcf2ecd69
mov dword [ebx + 0x10], 0xd361d132
mov dword [ebx + 0x14], 0xd777d560
mov dword [ebx + 0x18], 0xdb6ed96a
mov dword [ebx + 0x1c], 0xdf31dd3c
mov dword [ebx + 0x20], 0xa30ba10d
mov dword [ebx + 0x24], 0xa746a50a
mov dword [ebx + 0x28], 0xab07a90b
mov dword [ebx + 0x2c], 0xaf40ad08
mov dword [ebx + 0x30], 0xb30ab115
mov dword [ebx + 0x34], 0xb756b511
mov dword [ebx + 0x38], 0xbb55b95a
mov dword [ebx + 0x3c], 0xbf5ebd1f
mov dword [ebx + 0x40], 0x832b8134
mov dword [ebx + 0x44], 0x87238529
mov dword [ebx + 0x48], 0x8b3f8927
mov dword [ebx + 0x4c], 0x8f6e8d38
mov dword [ebx + 0x50], 0x9326917f
mov dword [ebx + 0x54], 0x97659574
mov dword [ebx + 0x58], 0x9b759978
mov dword [ebx + 0x5c], 0x9f319d32
mov dword [ebx + 0x60], 0x63d061c2
mov dword [ebx + 0x64], 0x67c765c1
mov dword [ebx + 0x68], 0x6b8a69c3
mov dword [ebx + 0x6c], 0x6f8e6d8a
mov dword [ebx + 0x70], 0x73d771d4
mov dword [ebx + 0x74], 0x779675d8
mov dword [ebx + 0x78], 0x7b7a799a
mov word [ebx + 0x80], 0
mov dword [ebx + 0x7c], 0
mov dword [esi + 4], 0
mov ecx, dword [esi + 4]
cmp ecx, 0x81
ja 0x40ffe0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 4]
mov edx, dword [esi + 4]
movzx edx, byte [ebx + edx]
mov edi, ecx
and edi, 0xdf4fea0
xor ecx, 0xdf4fea0
lea ecx, [ecx + edi*2]
lea edi, [ecx + edx]
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
mov edx, ecx
or edx, 0x9f
and ecx, 0x9f
add ecx, edx
inc cl
mov edx, dword [esi + 4]
mov byte [ebx + edx], cl
inc dword [esi + 4]
mov ecx, dword [esi + 4]
cmp ecx, 0x82
jb 0x40ff90
movzx ecx, word [ebx]
mov edx, dword [esi + 0x54]
mov edi, edx
test cx, cx
je 0x410011
add ebx, 2
mov edi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [ebx]
add ebx, 2
test cx, cx
jne 0x410000
mov word [edi], 0
movzx ecx, word [eax]
test cx, cx
je 0x410041
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x410030
mov dword [edi], 0x220022
mov ebx, dword [esi + 0xa8]
jmp dword [0x44288c]
mov dword [edi + 4], 0x22
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 0xd3a7a30
push dword [0x44890c]
call fcn.0043b710
add esp, 8
push dword [esi + 0x50]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x54]
push 0
call eax
nop
nop
nop
mov dword [edi + 4], 0x22
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 0xd3a7a30
push dword [0x44890c]
call fcn.0043b710
add esp, 8
push dword [esi + 0x50]
push ebx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esi + 0x54]
push 0
call eax
jmp dword [0x442890]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442898]
mov eax, dword [esi + 0x50]
mov eax, dword [eax]
mov dword [esi + 8], 0x7a797867
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov byte [esi + 0x14], 0
mov dword [esi + 0x24], 0
mov ecx, dword [esi + 0x24]
cmp ecx, 0xc
ja 0x410235
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x24]
movzx edx, byte [esi + edx + 8]
lea edi, [ecx - 0x5b158171]
lea ebx, [ecx + 0x8f]
xor ebx, edi
and edi, edx
and ebx, edx
add ecx, edx
add ecx, 0xa4ea7e8f
lea edx, [ebx + edi*2]
sub ecx, edx
mov dword [esi + 4], ecx
mov ecx, dword [esi + 4]
add cl, 0x17
mov edx, dword [esi + 0x24]
mov byte [esi + edx + 8], cl
inc dword [esi + 0x24]
mov ecx, dword [esi + 0x24]
cmp ecx, 0xd
jb 0x4101f0
mov ecx, dword [0x448918]
test ecx, ecx
je case.0x40fe64.8
mov edx, dword [esi + 8]
xor edi, edi
mov ebx, dword [0x44891c]
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x410260
inc edi
cmp ecx, edi
jne 0x410250
jmp case.0x40fe64.8
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.0x40fe64.8
push eax
push 1
push dword [0x448920]
push ecx
call fcn.00439b40
add esp, 0x10
mov ebx, dword [esi + 0x34]
mov edi, dword [esi + 0x28]
mov ecx, dword [esi + 0x38]
call fcn.004092e0
mov ecx, dword [esi + 0x7c]
call fcn.004092e0
mov ecx, dword [esi + 0x90]
call fcn.004092e0
mov ecx, dword [esi + 0x80]
call fcn.004092e0
mov ecx, edi
call fcn.004092e0
mov ecx, ebx
call fcn.004092e0
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x34], edi
jmp 0x410388
mov esi, dword [esp + 0x154]
inc esi
push edi
call fcn.00402ac0
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x4428a8]
mov dword [esp + 0x154], esi
push esi
push edi
call fcn.00402ad0
add esp, 8
mov dword [esp + 0x18], eax
mov word [esp + 0x40], 0x39a2
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x49], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410440
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
mov edx, eax
and edx, 0xc8567127
xor eax, 0xc8567127
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
mov esi, eax
xor esi, ecx
or eax, ecx
xor eax, esi
lea ecx, [esi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
add al, 0xef
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4103f0
push 3
push ebx
mov esi, dword [esp + 0x20]
push esi
call fcn.00402a50
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4428b0]
jmp dword [0x4428bc]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x442ab0]
mov dword [esp + 0x18], eax
mov edx, eax
mov ecx, esi
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x410480
mov ecx, eax
xor ecx, esi
mov edi, esi
not edi
and edi, eax
add edi, edi
sub edi, ecx
mov eax, esi
add eax, edi
xor ebx, ebx
test edi, edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0xbc], edi
jle 0x4104eb
cmp byte [esi], 0
je 0x4104eb
xor ebx, ebx
mov edi, dword [esp + 0x24]
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
mov esi, dword [esp + 0x24]
push esi
push edi
call fcn.0040ebb0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x4104eb
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4104c0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4104f9
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x24]
jbe 0x410575
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0xbc], 0
jle 0x410575
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x410575
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x28]
jae 0x410571
add esi, eax
cmp esi, edi
mov edx, dword [esp + 0x2c]
jb 0x410540
jmp 0x410575
mov edx, dword [esp + 0x2c]
mov word [ebx], 0
xor eax, eax
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x410580
mov ecx, dword [esp + 0x18]
add eax, ecx
dec eax
mov esi, ecx
not esi
and esi, eax
xor eax, ecx
add esi, esi
sub esi, eax
add ecx, esi
mov dword [esp + 0x18], ecx
xor edi, edi
mov dword [esp + 0x28], esi
test esi, esi
jle 0x4105eb
cmp byte [edx], 0
je 0x4105eb
xor edi, edi
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
mov esi, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040ebb0
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, esi
jae 0x4105eb
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4105c0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4105f9
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x2c]
jbe 0x41066f
mov edi, dword [esp + 0xbc]
cmp dword [esp + 0x28], 0
jle 0x41066f
mov edi, dword [esp + 0xbc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41066f
lea eax, [esp + 0x40]
push eax
mov esi, dword [esp + 0x1c]
push esi
push ebx
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x20]
jae 0x41066f
add ebx, eax
cmp ebx, esi
jb 0x410640
mov word [edi], 0
mov word [esp + 0x40], 0x55a9
mov byte [esp + 0x42], 0xf2
mov dword [esp + 0x43], 0
mov word [esp + 0x47], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4106e0
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xde]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x550556de
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xee
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4106a0
lea ebx, [esp + 0x40]
push ebx
push dword [ebp + 8]
call fcn.00402890
add esp, 8
xor ecx, ecx
mov dword [esp + 0x24], eax
test eax, eax
setne cl
xor edi, edi
xor edx, edx
jmp dword [ecx*4 + 0x442ab8]
mov esi, edx
mov ecx, ebx
push 2
call fcn.004092a0
mov dword [esp + 0x18], edi
push esi
push edi
push dword [esp + 0xc4]
push dword [esp + 0x3c]
push ebx
call fcn.004163e0
add esp, 0x14
mov ecx, ebx
call fcn.00409be0
movzx eax, al
mov ecx, edi
mov edi, dword [esp + 0x34]
jmp dword [eax*4 + 0x442ad8]
mov eax, dword [esp + 0x44]
mov byte [esp + 0xb2], 0
cmp eax, 0x3ff
ja 0x410ad3
mov byte [esp + 0xb1], 0x30
lea esi, [esp + 0xb1]
jmp 0x410b44
push dword [esp + 0x24]
call fcn.00402ac0
add esp, 4
mov ecx, eax
mov dword [esp + 0x28], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x41079a
mov esi, eax
test dl, dl
jne 0x4107a0
mov ecx, esi
push ecx
call fcn.00408bd0
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
add edi, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442ac0]
mov eax, dword [esp + 0x28]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
lea ecx, [edi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442ac8]
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 + 0x442ac8]
xor esi, esi
xor eax, eax
mov edx, dword [esp + 0x28]
cmp esi, edx
setb al
jmp dword [eax*4 + 0x442ad0]
lea ebx, [esp + 0x40]
push ebx
push edi
call fcn.004028f0
add esp, 8
xor edx, edx
test eax, eax
setg dl
lea eax, [esi + esi*2]
mov edi, dword [esp + 0x18]
lea ecx, [edi + eax*4]
push edx
push dword [esp + 0x24]
push dword [esp + 0x34]
call fcn.00415d50
inc esi
xor eax, eax
mov edx, dword [esp + 0x28]
cmp esi, edx
setb al
jmp dword [eax*4 + 0x442ad0]
mov dword [esp + 0x18], edi
push esi
push dword [esp + 0x28]
call fcn.00402ad0
add esp, 8
mov edi, eax
mov word [esp + 0x40], 0xc7cd
mov byte [esp + 0x42], 0x34
lea eax, [esp + 0x43]
mov word [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410902
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
add eax, 0xbe315df9
xor eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x31
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4108c0
push ebx
push edi
call fcn.004027c0
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x40], 0xa3b5
mov byte [esp + 0x42], 0xda
lea eax, [esp + 0x43]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x41099b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0xa9aacf5c
add eax, 0xa9aacf5c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0x7b
and eax, 0x7b
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x410950
push ebx
push edi
call fcn.004027c0
add esp, 8
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], 0x63cac9f2
lea eax, [esp + 0x43]
mov byte [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410830
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x1b230f6f]
lea ebx, [eax + 0x91]
xor ebx, edx
and edx, ecx
and ebx, ecx
add eax, ecx
add eax, 0xe4dcf091
lea ecx, [ebx + edx*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 9
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4109e0
jmp 0x410830
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442ae0]
mov eax, dword [0x442af4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xb2]
cmp eax, 0x19000
jb 0x410b2e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
mov edx, 0x51eb851f
mul edx
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 0x410af0
cmp edx, 9
ja 0x410b35
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x410b44
mov edx, ecx
cmp edx, 9
jbe 0x410b21
movzx eax, word [edx + edx + 0x43f528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov dword [esp], 0x9b905b53
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov word [esp + 0xc], 0
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0xc0]
cmp eax, 0xd
ja 0x410bd5
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc0]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x6c]
mov edi, ecx
not edi
or edi, edx
and edx, ecx
add edx, edi
neg edx
add eax, edx
add eax, 0xa7704b6b
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xc
mov ecx, dword [esp + 0xc0]
mov byte [esp + ecx], al
inc dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
cmp eax, 0xe
jb 0x410b80
mov dword [esp + 0xe8], 0x6564a8b3
mov dword [esp + 0xec], 0x174b6763
mov dword [esp + 0xf0], 0x5753545e
mov dword [esp + 0xf4], 0x6b1e5d5d
mov dword [esp + 0xf8], 0x46751d6f
mov dword [esp + 0xfc], 0x40064572
mov dword [esp + 0x100], 0x4679734c
mov dword [esp + 0x104], 0xf437c41
mov dword [esp + 0x108], 0x7c754c7c
mov dword [esp + 0x10c], 0x43364575
mov dword [esp + 0x110], 0x734e3547
mov dword [esp + 0x114], 0x7a49397d
mov dword [esp + 0x118], 0x5567474a
mov dword [esp + 0x11c], 0x5452212c
mov dword [esp + 0x120], 0x2b666450
mov dword [esp + 0x124], 0x60696858
mov dword [esp + 0x128], 0x24525969
mov dword [esp + 0x12c], 0x69132f19
mov word [esp + 0x130], 0xb554
mov byte [esp + 0x13e], 0
mov dword [esp + 0x13a], 0
mov dword [esp + 0x136], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x38]
cmp eax, 0x56
ja 0x410d2b
nop
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax + 0xfe]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x60eacfe
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0xc0]
add al, 0xe
mov ecx, dword [esp + 0x38]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x57
jb 0x410ce0
lea eax, [0x44790b]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x410d40
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x410d72
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 0x410d60
add eax, edx
mov edi, dword [esp + 0x34]
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x410d9b
inc esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x410d90
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x410dbb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x410db0
mov byte [eax], 0
xor eax, eax
cmp dword [esp + 0x18], 0
sete al
jmp dword [eax*4 + 0x442ae0]
jmp dword [0x442b08]
mov eax, dword [case.0x411ddc.9]
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ebx, dword [esp + 0x2c]
setb al
jmp dword [eax*4 + 0x442b60]
mov word [esp + 0x40], 0x9904
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41155d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x15b88b14]
add eax, 0xec
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0x8b
and eax, 0x8b
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411510
push ebx
push esi
call fcn.00402820
add esp, 8
fnstcw word [esp + 0xe6]
movzx eax, word [esp + 0xe6]
or eax, 0xc00
mov word [esp + 0x152], ax
fldcw word [esp + 0x152]
fistp dword [esp + 0x168]
fldcw word [esp + 0xe6]
jmp dword [0x4428c0]
mov eax, dword [esp + 0x168]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x4428c8]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x4428d0]
sete al
movzx eax, al
jmp dword [eax*4 + 0x4428d8]
jmp dword [0x442960]
mov word [esp + 0x40], 0x9904
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov word [esp + 0x4e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41166d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x15b88b14]
add eax, 0xec
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0x8b
and eax, 0x8b
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411620
push ebx
push esi
call fcn.00402820
fstp st(0)
add esp, 8
jmp case.0x410457.3
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x4428e0]
mov word [esp + 0x40], 0x51e6
mov dword [esp + 0x46], 0
mov dword [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x411706
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x27bf45cd]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xd840ba32
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x9b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x4116c0
push ebx
push dword [esp + 0x1c]
call fcn.004027c0
add esp, 8
mov esi, eax
mov word [esp + 0x40], 0x4dca
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x411781
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x395347ca
add eax, 0x395347ca
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x7a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x411740
push ebx
push dword [esp + 0x1c]
call fcn.004027c0
add esp, 8
xor ecx, ecx
test esi, esi
sete cl
jmp dword [ecx*4 + 0x442aa8]
mov word [esp + 0x40], 0xb1c0
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x49], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x411810
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xb8]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xa96c52b8
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xf8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4117d0
push ebx
push esi
call fcn.004027c0
add esp, 8
mov dword [esp + 0x2c], eax
mov word [esp + 0x40], 0x4dca
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov byte [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41189b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x49257d4a
add eax, 0x49257d4a
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, 0xfa
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411850
push ebx
push esi
call fcn.004027c0
add esp, 8
mov esi, eax
xor eax, eax
mov edx, dword [esp + 0x2c]
test edx, edx
sete al
mov dword [esp + 0x20], esi
jmp dword [eax*4 + 0x442b28]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442b30]
mov ecx, edx
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x4118d0
mov ecx, eax
xor ecx, edx
mov ebx, edx
not ebx
and ebx, eax
add ebx, ebx
sub ebx, ecx
mov eax, edx
add eax, ebx
mov dword [esp + 0x18], eax
xor edi, edi
test ebx, ebx
mov dword [esp + 0x24], ebx
jle 0x41193b
cmp byte [edx], 0
mov edx, dword [esp + 0x18]
je 0x41193b
xor edi, edi
mov ebx, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push edx
push ebx
call fcn.0040ebb0
mov edx, dword [esp + 0x24]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x41193b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411910
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411949
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x18]
jbe 0x411c6c
mov edi, dword [esp + 0x30]
cmp dword [esp + 0x24], 0
jle 0x411c6c
mov edi, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411c6c
lea edx, [esp + 0x40]
push edx
push ecx
push ebx
mov esi, ecx
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x28]
jae 0x411c68
add ebx, eax
cmp ebx, esi
mov ecx, esi
mov esi, dword [esp + 0x20]
jb 0x411990
jmp 0x411c6c
sete al
movzx eax, al
jmp dword [eax*4 + 0x4428e8]
mov word [esp + 0x40], 0x3986
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x411a64
mov edx, dword [esp]
mov eax, dword [esp]
movzx esi, byte [esp + eax + 0x40]
lea eax, [edx - 0x2c667429]
lea ecx, [edx + esi]
add ecx, 0xd3998bd7
add edx, 0xd7
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 + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x1f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb case.default.0x411a7d
push 2
push ebx
mov esi, dword [esp + 0x20]
push esi
call fcn.00402a50
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x4428f0]
mov word [esp + 0xe8], 0x8575
mov dword [esp + 0xee], 0
mov dword [esp + 0xea], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 9
ja 0x411b05
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax - 0x170153f]
and edx, ecx
add eax, ecx
add eax, 0xfe8feac1
add edx, edx
sub eax, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xb9
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xa
jb 0x411ac0
push 5
lea eax, [esp + 0xec]
push eax
push esi
call fcn.00402a50
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4428f8]
mov word [esp], 0x6dd2
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
ja 0x411b99
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x416b300e]
add eax, 0xe
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0x9e
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 0xe
jb 0x411b60
push 2
lea eax, [esp + 4]
push eax
push esi
call fcn.00402a50
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442900]
mov word [esp + 0xa8], 0xf922
mov dword [esp + 0xaa], 0
mov dword [esp + 0xad], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 8
ja 0x411c33
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx ecx, byte [esp + ecx + 0xa8]
lea edx, [eax - 0x262aa1c1]
add eax, 0x3f
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x38]
add al, 0x47
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xa8], al
inc dword [esp + 0x1c]
mov eax, dword [esp + 0x1c]
cmp eax, 9
jb 0x411bf0
push 3
lea eax, [esp + 0xac]
push eax
push esi
call fcn.00402a50
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x442908]
movzx eax, bl
lea ebx, [esp + 0x40]
jmp dword [eax*4 + 0x442910]
jmp dword [0x442918]
mov esi, dword [esp + 0x20]
mov word [edi], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x411c80
lea edi, [esi + eax]
dec edi
mov eax, edi
xor eax, esi
mov ebx, esi
not ebx
and edi, ebx
add edi, edi
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411ca9
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x24], eax
mov eax, edi
test esi, esi
jne 0x411ce5
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x411cd0
mov ecx, eax
xor ecx, esi
and ebx, eax
add ebx, ebx
sub ebx, ecx
mov eax, ebx
mov dword [esp + 0x40], 0
mov ecx, dword [esp + 0x24]
lea edx, [ecx + edi*2]
mov ebx, ecx
mov dword [esp + 0x18], edx
cmp edx, ecx
jbe 0x411d3b
mov ebx, dword [esp + 0x24]
test eax, eax
jle 0x411d3b
mov edi, esi
add edi, eax
mov ebx, dword [esp + 0x24]
nop
nop
cmp byte [esi], 0
je 0x411d3b
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x411d3b
add esi, eax
cmp esi, edi
jb 0x411d10
mov word [ebx], 0
mov word [esp + 0x40], 0xd1ed
mov byte [esp + 0x42], 0x5a
mov dword [esp + 0x47], 0
mov dword [esp + 0x43], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411db1
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0xec115c74
add eax, 0xec115c74
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xd4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x411d70
lea eax, [esp + 0x40]
push eax
push dword [ebp + 8]
call fcn.00402890
add esp, 8
xor ecx, ecx
mov dword [esp + 0x28], eax
test eax, eax
setne cl
mov dword [esp + 0x20], 0
mov dword [esp + 0x2c], 0
jmp dword [ecx*4 + 0x442b38]
lea ebx, [esp + 0x40]
mov ecx, ebx
push 3
call fcn.004092a0
push dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
push esi
push dword [esp + 0x2c]
push dword [esp + 0x3c]
push ebx
call fcn.00418aa0
add esp, 0x14
mov ecx, ebx
call fcn.00409be0
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442b68]
push dword [esp + 0x28]
call fcn.00402ac0
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 0x411ede
mov esi, eax
test dl, dl
jne 0x411ee4
mov ecx, esi
push ecx
call fcn.00408bd0
add esp, 4
mov ecx, dword [esp + 0x2c]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x20], eax
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x442b40]
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442b48]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x442b48]
xor ebx, ebx
jmp 0x4112f4
mov word [esp + 0xc0], 0xc0cc
mov byte [esp + 0xc2], 0x54
mov dword [esp + 0xc3], 0
mov byte [esp + 0xc7], 0
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
cmp eax, 7
ja 0x412029
nop
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
movzx edx, byte [esp + ecx + 0xc0]
lea ecx, [eax + 0x5a644f0d]
mov esi, ecx
and esi, edx
xor ecx, edx
add eax, 0xd
and eax, edx
add eax, esi
sub ecx, eax
lea eax, [ecx + esi*2]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
add al, 0xa5
mov ecx, dword [esp + 0x1c]
mov byte [esp + ecx + 0xc0], al
mov eax, dword [esp + 0x1c]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
cmp eax, 8
jb 0x411fd0
push 3
lea eax, [esp + 0xc4]
push eax
push dword [esp + 0x20]
call fcn.00402a50
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
lea ebx, [esp + 0x40]
jmp dword [ecx*4 + 0x442910]
mov word [esp + 0x40], 0x8d1c
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x41296b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0xfaa0d896
mov esi, 0x55f2769
sub esi, ecx
lea edi, [ecx + 0x96]
and edi, edx
or esi, edx
add esi, ecx
lea ecx, [edi + esi]
add ecx, 0xfaa0d897
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0xe5
and eax, 0x65
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412900
push ebx
push dword [esp + 0x1c]
call fcn.004027c0
add esp, 8
mov dword [esp + 0x24], eax
mov word [esp + 0x40], 0x8131
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x49], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x4129f4
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xeb]
and edx, ecx
mov esi, 0x7d28d14
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, 0x93
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x4129b0
push ebx
mov esi, dword [esp + 0x1c]
push esi
call fcn.00402890
add esp, 8
mov word [esp + 0x40], 0x39cc
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x412a7b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x40]
lea ecx, [eax + edx]
add ecx, 0x1ecd6df7
add eax, 0x1ecd6df7
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, 0x3f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x412a30
push ebx
push esi
call fcn.004027c0
add esp, 8
mov word [esp + 0x40], 0x19e4
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov word [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x412b16
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x131348ac]
lea esi, [eax + 0x54]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xececb754
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xb4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xc
jb 0x412ac0
push ebx
mov esi, dword [esp + 0x1c]
push esi
call fcn.00402820
fstp st(0)
add esp, 8
mov word [esp + 0x40], 0xc0cc
mov byte [esp + 0x42], 0x54
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov dword [esp + 0x4b], 0
mov byte [esp + 0x4f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x412b9d
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x4d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xadb40e4d
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xe5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x412b60
push ebx
push esi
call fcn.00402820
fstp st(0)
add esp, 8
mov word [esp + 0x40], 0x578
mov byte [esp + 0x42], 0x90
mov dword [esp + 0x47], 0
mov dword [esp + 0x43], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x412c1d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x43]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x7b11f643
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x2b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x412be0
push ebx
push esi
call fcn.004028f0
add esp, 8
xor eax, eax
mov ecx, dword [esp + 0x24]
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x412c30
add eax, ecx
dec eax
mov edx, ecx
not edx
and edx, eax
xor eax, ecx
add edx, edx
sub edx, eax
mov esi, ecx
add esi, edx
xor ebx, ebx
mov dword [esp + 0x30], edx
test edx, edx
jle 0x412c97
cmp byte [ecx], 0
je 0x412c97
xor ebx, ebx
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.0040ebb0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x412c97
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x412c70
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x412ca5
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
jbe 0x412d1d
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x30], 0
jle 0x412d1d
mov edi, dword [esp + 0x28]
mov dword [esp + 0x2c], ebx
nop
nop
cmp byte [ecx], 0
je 0x412d1d
lea eax, [esp + 0x40]
push eax
push esi
push ecx
mov ebx, esi
mov esi, ecx
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x20]
jae 0x412d19
add esi, eax
cmp esi, ebx
mov ecx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2c]
jb 0x412ce0
jmp 0x412d1d
mov ebx, dword [esp + 0x2c]
mov word [edi], 0
lea eax, [esp + 0xa8]
push eax
push 0
push 0
push ebx
push dword [esp + 0x38]
push 0
call dword [0x448914]
mov esi, dword [esp + 0xa8]
lea eax, [esi + esi]
test esi, esi
jns 0x412d4e
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
lea ecx, [esp + 0xa8]
push ecx
push esi
push eax
push ebx
push dword [esp + 0x38]
push 0
call dword [0x448914]
lea ebx, [esp + 0x40]
mov word [esp + 0x40], 0x8d1c
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x412e1b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0xfaa0d896
mov esi, 0x55f2769
sub esi, ecx
lea edi, [ecx + 0x96]
and edi, edx
or esi, edx
add esi, ecx
lea ecx, [edi + esi]
add ecx, 0xfaa0d897
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0xe5
and eax, 0x65
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412db0
push ebx
push dword [esp + 0x1c]
call fcn.004027c0
add esp, 8
mov dword [esp + 0x30], eax
mov word [esp + 0x40], 0x8131
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x49], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x412ea4
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xeb]
and edx, ecx
mov esi, 0x7d28d14
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, 0x93
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x412e60
push ebx
mov esi, dword [esp + 0x1c]
push esi
call fcn.00402890
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x40], 0x39cc
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x412f2b
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x40]
lea ecx, [eax + edx]
add ecx, 0x1ecd6df7
add eax, 0x1ecd6df7
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, 0x3f
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x412ee0
push ebx
push esi
call fcn.004027c0
add esp, 8
mov dword [esp + 0xd8], eax
mov word [esp + 0x40], 0x19e4
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov word [esp + 0x4a], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x412fc6
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x131348ac]
lea esi, [eax + 0x54]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xececb754
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xb4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xc
jb 0x412f70
push ebx
mov esi, dword [esp + 0x1c]
push esi
call fcn.00402820
add esp, 8
fnstcw word [esp + 0xe0]
movzx eax, word [esp + 0xe0]
or eax, 0xc00
mov word [esp + 0x14c], ax
fldcw word [esp + 0x14c]
fistp dword [esp + 0x164]
fldcw word [esp + 0xe0]
mov eax, dword [esp + 0x164]
mov dword [esp + 0xbc], eax
mov word [esp + 0x40], 0xc0cc
mov byte [esp + 0x42], 0x54
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov dword [esp + 0x4b], 0
mov byte [esp + 0x4f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41308d
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x4d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xadb40e4d
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xe5
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413050
push ebx
push esi
call fcn.00402820
add esp, 8
fnstcw word [esp + 0xde]
movzx eax, word [esp + 0xde]
or eax, 0xc00
mov word [esp + 0x14a], ax
fldcw word [esp + 0x14a]
fistp dword [esp + 0x160]
fldcw word [esp + 0xde]
mov eax, dword [esp + 0x160]
mov dword [esp + 0x140], eax
mov word [esp + 0x40], 0x578
mov byte [esp + 0x42], 0x90
mov dword [esp + 0x47], 0
mov dword [esp + 0x43], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41314d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x43]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x7b11f643
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x2b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x413110
push ebx
push esi
call fcn.004028f0
add esp, 8
mov dword [esp + 0x144], eax
xor eax, eax
mov ecx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x413170
add eax, ecx
dec eax
mov edx, ecx
not edx
and edx, eax
xor eax, ecx
add edx, edx
sub edx, eax
mov ebx, ecx
add ebx, edx
xor edi, edi
mov dword [esp + 0xd4], edx
test edx, edx
jle 0x4131d7
cmp byte [ecx], 0
je 0x4131d7
xor edi, edi
mov esi, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push ebx
push esi
call fcn.0040ebb0
add esp, 0xc
lea ecx, [esi + eax]
inc edi
cmp ecx, ebx
jae 0x4131d7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4131b0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4131e5
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov esi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x30]
jbe 0x41326d
mov esi, dword [esp + 0x24]
cmp dword [esp + 0xd4], 0
jle 0x41326d
mov esi, dword [esp + 0x24]
mov dword [esp + 0x2c], edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x41326d
lea eax, [esp + 0x40]
push eax
push ebx
push ecx
mov edi, ebx
mov ebx, ecx
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x20]
jae 0x413269
add ebx, eax
cmp ebx, edi
mov ecx, ebx
mov ebx, edi
mov edi, dword [esp + 0x2c]
jb 0x413230
jmp 0x41326d
mov edi, dword [esp + 0x2c]
mov word [esi], 0
lea eax, [esp + 0xa8]
push eax
push 0
push 0
push edi
push dword [esp + 0x34]
push 0
call dword [0x448914]
mov esi, dword [esp + 0xa8]
lea eax, [esi + esi]
test esi, esi
jns 0x41329e
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov ecx, eax
lea eax, [esp + 0xa8]
push eax
push esi
mov dword [esp + 0x38], ecx
push ecx
push edi
push dword [esp + 0x34]
push 0
call dword [0x448914]
lea ebx, [esp + 0x40]
jmp dword [0x442920]
jmp dword [0x442928]
push dword [esp + 0x24]
call fcn.00408be0
add esp, 4
mov edx, dword [esp + 0xd8]
mov ecx, edx
jmp 0x413ba8
mov edx, dword [esp + 0xd8]
mov eax, edx
jmp 0x413ba0
mov esi, dword [esp + 0x28]
push esi
call fcn.00402ac0
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x442930]
mov dword [esp + 0x20], edi
push edi
push esi
call fcn.00402aa0
add esp, 8
push eax
call fcn.00402800
add esp, 4
mov esi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x442938]
jmp dword [0x442950]
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x413bac
mov eax, ecx
jmp 0x413ba0
mov ecx, eax
xor ecx, edx
mov edi, edx
not edi
and edi, eax
add edi, edi
sub edi, ecx
mov esi, edx
add esi, edi
xor ebx, ebx
mov dword [esp + 0x20], edi
test edi, edi
jle 0x413c07
cmp byte [edx], 0
je 0x413c07
xor ebx, ebx
mov edi, dword [esp + 0xd8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.0040ebb0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x413c07
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413be0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413c15
mov eax, 0xffffffff
push eax
call fcn.00408bd0
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ecx
cmp ecx, eax
mov edi, dword [esp + 0xd8]
jbe 0x413c7b
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x20], 0
jle 0x413c7b
mov ebx, dword [esp + 0x24]
nop
nop
nop
cmp byte [edi], 0
je 0x413c7b
lea eax, [esp + 0x40]
push eax
push esi
push edi
call fcn.0040ebb0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x18]
jae 0x413c7b
add edi, eax
cmp edi, esi
jb 0x413c50
mov word [ebx], 0
lea ecx, [esp + 0x40]
push 1
call fcn.004092a0
xor edi, edi
mov ebx, dword [esp + 0x34]
jmp 0x413355
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret