Function at 0x40d390
Capabilities:
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcd8
mov ecx, dword [0x43d974]
mov dword [esp + 0xb8], 0x4989dd96
mov word [esp + 0xbc], 0
mov dword [esp + 0x224], 0
mov eax, dword [esp + 0x224]
cmp eax, 5
ja 0x40d42e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x224]
mov edx, dword [esp + 0x224]
movzx edx, byte [esp + edx + 0xb8]
add eax, 0x20253813
xor eax, edx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0xa1
mov edx, dword [esp + 0x224]
mov byte [esp + edx + 0xb8], al
inc dword [esp + 0x224]
mov eax, dword [esp + 0x224]
cmp eax, 6
jb 0x40d3e0
mov edx, dword [str.wxq2PX__Dolphin]
mov dword [esp + 0x2c8], 0x3aeedea3
mov dword [esp + 0x2cc], 0xe2dbe4ee
mov dword [esp + 0x2d0], 0xe2d3e8f6
mov dword [esp + 0x2d4], 0xd2e3e2eb
mov dword [esp + 0x2d8], 0xe330f0ed
mov dword [esp + 0x2dc], 0x392df9f3
mov dword [esp + 0x2e0], 0xfd38333e
mov dword [esp + 0x2e4], 0x6525c3ff
mov dword [esp + 0x2e8], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 0x23
ja 0x40d4ef
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2c8]
add eax, 0x5d3556bf
xor eax, esi
mov dword [esp + 0x224], eax
mov eax, dword [esp + 0x224]
add al, 0x45
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 0x24
jb 0x40d4b0
movzx ebx, byte [esp + 0x2c8]
lea eax, [esp + 0x224]
test bl, bl
je 0x40d51b
lea esi, [esp + 0x2c9]
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40d510
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40d53b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40d530
mov byte [eax], 0
movzx edx, byte [esp + 0xb8]
test dl, dl
je 0x40d56b
lea esi, [esp + 0xb9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40d560
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40d58b
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 0x40d580
mov byte [eax], 0
mov dword [esp + 0x2c8], 0x3fad397f
mov dword [esp + 0x2cc], 0x23b63dae
mov dword [esp + 0x2d0], 0x27b42185
mov dword [esp + 0x2d4], 0x2b4725b0
mov dword [esp + 0x2d8], 0x2fb7299c
mov dword [esp + 0x2dc], 0x13b72dbc
mov dword [esp + 0x2e0], 0x1776114e
mov dword [esp + 0x2e4], 0x1b8a15b5
mov dword [esp + 0x2e8], 0x1fb21988
mov dword [esp + 0x2ec], 0x3a51db5
mov dword [esp + 0x2f0], 0x79201a1
mov dword [esp + 0x2f4], 0xb9905ad
mov dword [esp + 0x2f8], 0xf5d099a
mov dword [esp + 0x2fc], 0x731f0d94
mov dword [esp + 0x300], 0x77ed71eb
mov dword [esp + 0x304], 0x7b1775ef
mov dword [esp + 0x308], 0x7fed79d2
mov dword [esp + 0x30c], 0x63cf7dea
mov dword [esp + 0x310], 0x67f3610d
mov dword [esp + 0x314], 0x6bc665f2
mov dword [esp + 0x318], 0x6ffc69cd
mov dword [esp + 0x31c], 0x53c16dcb
mov dword [esp + 0x320], 0x57f351f4
mov dword [esp + 0x324], 0x5b5755f0
mov dword [esp + 0x328], 0x5f5e5956
mov byte [esp + 0x32c], 0
lea ecx, [esp + 0x224]
mov dword [esp + 0x20], 0
mov edx, dword [esp + 0x20]
cmp edx, 0x64
ja 0x40d711
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x20]
movzx esi, byte [esp + esi + 0x2c8]
add edx, 0xc0d2d38a
xor edx, esi
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xb8]
add dl, 0x4e
mov esi, dword [esp + 0x20]
mov byte [esp + esi + 0x2c8], dl
inc dword [esp + 0x20]
mov edx, dword [esp + 0x20]
cmp edx, 0x65
jb 0x40d6d0
sub eax, ecx
mov dword [esp + 0xb8], 0x1777194b
mov dword [esp + 0xbc], 0x138b1584
mov dword [esp + 0xc0], 0x1110
mov dword [esp + 0x1b8], 0
mov edx, dword [esp + 0x1b8]
cmp edx, 0xb
ja 0x40d7a5
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x1b8]
mov esi, dword [esp + 0x1b8]
movzx esi, byte [esp + esi + 0xb8]
mov edi, edx
and edi, 0x397c0086
xor edx, 0x397c0086
lea edx, [edx + edi*2]
xor edx, esi
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x20]
add dl, 0x62
mov esi, dword [esp + 0x1b8]
mov byte [esp + esi + 0xb8], dl
inc dword [esp + 0x1b8]
mov edx, dword [esp + 0x1b8]
cmp edx, 0xc
jb 0x40d750
lea edx, [esp + 0xb4]
lea edi, [esp + 0xac]
lea ebx, [esp + 0x2c8]
lea esi, [esp + 0xb8]
push edx
push edi
push eax
push ecx
push ebx
push esi
push 0x442c50
call fcn.0040c040
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43e348]
xor edi, edi
xor eax, eax
test edi, 0
sete al
jmp dword [eax*4 + 0x43e350]
push 0x104
push ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xb4]
mov ebx, dword [esp + 0xac]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [ebx + ecx - 1]
cmp edx, 0x3d
je 0x40d821
cmp edx, 0x2e
jne 0x40d822
dec eax
movzx ecx, byte [ebx + ecx - 2]
cmp ecx, 0x3d
je 0x40d831
cmp ecx, 0x2e
jne 0x40d832
dec eax
push eax
call fcn.004092e0
add esp, 4
mov edi, eax
push eax
push ebx
call fcn.00431310
add esp, 8
push dword [esp + 0xac]
call fcn.004340c0
add esp, 4
xor eax, eax
test edi, edi
sete al
lea ebx, [esp + 0x2c8]
jmp dword [eax*4 + 0x43e350]
push edi
call fcn.00402560
add esp, 4
mov dword [esp + 0x1c], eax
jmp dword [0x43e358]
push edi
call fcn.004092f0
add esp, 4
push dword [esp + 0x1c]
call fcn.00402ed0
add esp, 4
mov dword [esp + 0x14], eax
mov word [esp + 0x2c8], 0x2c36
mov byte [esp + 0x2ca], 0x82
mov word [esp + 0x2cb], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja case.0x40c309.104
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 + 0x2c8]
add eax, 0x3c2370e0
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xa0
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x40d8d0
push ebx
push dword [esp + 0x18]
call fcn.00402f50
add esp, 8
mov ecx, dword [case.0x40d864.6]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43e370]
call fcn.00430420
movzx eax, al
jmp dword [eax*4 + 0x43e378]
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
shr eax, 0x1f
jmp dword [eax*4 + 0x43e380]
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
shr eax, 0x1f
jmp dword [eax*4 + 0x43e388]
jmp dword [0x43e390]
mov word [esp + 0x2c8], 0x2521
mov byte [esp + 0x2ca], 0x82
mov word [esp + 0x2cb], 0
mov byte [esp + 0x2cd], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x40d9ff
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0xef132ea0
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xe0
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x40d9c0
lea edi, [esp + 0x2c8]
push edi
push dword [esp + 0x18]
call fcn.00402f50
add esp, 8
mov word [esp + 0x2c8], 0x6c63
mov byte [esp + 0x2ca], 0xf2
mov word [esp + 0x2cb], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x40da7f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0xe7422e2c
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x24
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x40da40
push edi
mov edi, dword [esp + 0x18]
push edi
call fcn.00402f50
add esp, 8
push edi
call fcn.0040e860
add esp, 4
push dword [esp + 0x1c]
call fcn.00403160
add esp, 4
lea edi, [esp + 0x1b8]
mov ecx, edi
push 1
call fcn.00409c30
push edi
call fcn.0041aca0
add esp, 4
mov ecx, edi
call fcn.0040a500
lea edi, [esp + 0xc68]
mov ecx, edi
push 3
call fcn.00409c30
push edi
call fcn.0041b550
add esp, 4
mov ecx, edi
call fcn.0040a500
lea edi, [esp + 0xc00]
mov ecx, edi
push 1
call fcn.00409c30
push edi
call fcn.0041b7e0
add esp, 4
mov ecx, edi
call fcn.0040a500
lea edi, [esp + 0xb98]
mov ecx, edi
push 1
call fcn.00409c30
push edi
call fcn.0041d960
add esp, 4
push edi
call fcn.0041e2f0
add esp, 4
push edi
call fcn.0041e750
add esp, 4
mov ecx, edi
call fcn.0040a500
lea edi, [esp + 0xb30]
mov ecx, edi
push 1
call fcn.00409c30
push edi
call fcn.00420610
add esp, 4
mov ecx, edi
call fcn.0040a500
lea edi, [esp + 0xac8]
mov ecx, edi
push 1
call fcn.00409c30
push edi
call fcn.00425480
add esp, 4
push edi
call fcn.0042bff0
add esp, 4
jmp case.0x40d864.16
push edi
mov ebx, dword [esp + 0x18]
push ebx
call fcn.00402f50
add esp, 8
mov edi, eax
push ebx
call fcn.0040e860
add esp, 4
push dword [esp + 0x1c]
call fcn.00403160
add esp, 4
lea ebx, [esp + 0x1b8]
mov ecx, ebx
push 1
call fcn.00409c30
push ebx
call fcn.0041aca0
add esp, 4
mov ecx, ebx
call fcn.0040a500
lea ebx, [esp + 0xc68]
mov ecx, ebx
push 3
call fcn.00409c30
push ebx
call fcn.0041b550
add esp, 4
mov ecx, ebx
call fcn.0040a500
lea ebx, [esp + 0xc00]
mov ecx, ebx
push 1
call fcn.00409c30
push ebx
call fcn.0041b7e0
add esp, 4
mov ecx, ebx
call fcn.0040a500
lea ebx, [esp + 0xb98]
mov ecx, ebx
push 1
call fcn.00409c30
push ebx
call fcn.0041d960
add esp, 4
push ebx
call fcn.0041e2f0
add esp, 4
push ebx
call fcn.0041e750
add esp, 4
mov ecx, ebx
call fcn.0040a500
lea ebx, [esp + 0xb30]
mov ecx, ebx
push 1
call fcn.00409c30
push ebx
call fcn.00420610
add esp, 4
mov ecx, ebx
call fcn.0040a500
lea ebx, [esp + 0xac8]
mov ecx, ebx
push 1
call fcn.00409c30
push ebx
call fcn.00425480
add esp, 4
push ebx
call fcn.0042bff0
add esp, 4
jmp dword [0x43e39c]
mov word [esp + 0x2c8], 0x2521
mov byte [esp + 0x2ca], 0x82
mov word [esp + 0x2cb], 0
mov byte [esp + 0x2cd], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 5
ja 0x40dcff
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 + 0x2c8]
add eax, 0xef132ea0
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0xe0
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 6
jb 0x40dcc0
lea edi, [esp + 0x2c8]
push edi
push dword [esp + 0x18]
call fcn.00402f50
add esp, 8
mov dword [esp + 0xa4], eax
mov word [esp + 0x2c8], 0x6c63
mov byte [esp + 0x2ca], 0xf2
mov word [esp + 0x2cb], 0
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x20]
cmp eax, 4
ja 0x40db80
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x20]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0xe7422e2c
xor eax, ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x24
mov ecx, dword [esp + 0x20]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 0x20]
mov eax, dword [esp + 0x20]
cmp eax, 5
jb 0x40dd50
jmp 0x40db80
push dword [esp + 0x1c]
call fcn.00403160
add esp, 4
xor eax, eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
test edi, edi
setg al
jmp dword [eax*4 + 0x43e3a0]
push ebx
call fcn.00422b30
add esp, 4
lea ecx, [esp + 0xac8]
call fcn.0040a500
lea eax, [esp + 0x2a7]
push eax
call fcn.00430d50
add esp, 4
mov dword [esp + 0x20], 0xde2de1a2
mov word [esp + 0x24], 0xf0d8
mov byte [esp + 0x26], 0xb2
mov dword [esp + 0x27], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xa
ja 0x40de58
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x20]
add eax, 0x10b9e
xor eax, ecx
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 0x2c8]
add al, 0xea
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
jb 0x40de10
mov eax, dword [0x43d974]
mov dword [esp], 0x5131e52a
mov dword [esp + 0xb8], 0
mov ecx, dword [esp + 0xb8]
cmp ecx, 3
lea ebx, [esp + 0x2c8]
ja 0x40ded8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xb8]
movzx edx, byte [esp + edx]
add ecx, 0xc21c4eed
xor ecx, edx
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2c8]
add cl, 0x5f
mov edx, dword [esp + 0xb8]
mov byte [esp + edx], cl
inc dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
cmp ecx, 4
jb 0x40de90
mov ecx, dword [str.wxq2PX__Dolphin]
mov dword [esp + 0x2c8], 0x76be9291
mov dword [esp + 0x2cc], 0x88a2b0b3
mov dword [esp + 0x2d0], 0xb8b9b4bd
mov dword [esp + 0x2d4], 0x79bbba85
mov dword [esp + 0x2d8], 0x66b0bcae
mov dword [esp + 0x2dc], 0x414e4b50
mov dword [esp + 0x2e0], 0x5e86808c
mov byte [esp + 0x2e4], 0x14
mov dword [esp + 0x2e5], 0
mov dword [esp + 0x2e8], 0
mov dword [esp + 4], 0
mov edx, dword [esp + 4]
cmp edx, 0x23
ja 0x40dfad
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 4]
mov edi, dword [esp + 4]
movzx edi, byte [esp + edi + 0x2c8]
add edx, 0xb29f8d8c
xor edx, edi
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xb8]
mov edi, edx
not edi
and edi, 0xbc
and edx, 0x43
sub edx, edi
mov edi, dword [esp + 4]
mov byte [esp + edi + 0x2c8], dl
inc dword [esp + 4]
mov edx, dword [esp + 4]
cmp edx, 0x24
jb 0x40df60
movzx edx, byte [esp + 0x2c8]
test dl, dl
je 0x40dfdb
lea esi, [esp + 0xb8]
lea edi, [esp + 0x2c9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [edi]
inc edi
test dl, dl
jne 0x40dfd0
mov byte [esi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40dffb
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], dl
inc esi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40dff0
mov byte [esi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40e01b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40e010
mov byte [esi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40e03b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], cl
inc esi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40e030
mov byte [esi], 0
movzx eax, byte [esp + 0x20]
test al, al
je 0x40e05b
lea ecx, [esp + 0x21]
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e050
mov byte [esi], 0
movzx eax, byte [esp + 0x2a7]
test al, al
je 0x40e08b
lea ecx, [esp + 0x2a8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [esi], al
inc esi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40e080
mov byte [esi], 0
lea eax, [esp + 0xb8]
mov dword [esp + 0x2c8], 0x79eb7b31
mov dword [esp + 0x2cc], 0x65fa67ea
mov dword [esp + 0x2d0], 0x61f0630f
mov dword [esp + 0x2d4], 0x6d3d6ffc
mov dword [esp + 0x2d8], 0x69ed6b10
mov dword [esp + 0x2dc], 0x95fd97f8
mov dword [esp + 0x2e0], 0x91b293d2
mov dword [esp + 0x2e4], 0x9d0e9fff
mov dword [esp + 0x2e8], 0x990e9b0c
mov dword [esp + 0x2ec], 0x85eb870f
mov dword [esp + 0x2f0], 0x811e83eb
mov dword [esp + 0x2f4], 0x8d1f8f17
mov dword [esp + 0x2f8], 0x89db8b1e
mov dword [esp + 0x2fc], 0xb5e5b710
mov dword [esp + 0x300], 0xb12bb32d
mov dword [esp + 0x304], 0xbdedbf29
mov dword [esp + 0x308], 0xb92bbbd6
mov dword [esp + 0x30c], 0xa535a726
mov dword [esp + 0x310], 0xa139a3f7
mov dword [esp + 0x314], 0xad3aaf3e
mov dword [esp + 0x318], 0xa938abc7
mov dword [esp + 0x31c], 0xd547d7c5
mov dword [esp + 0x320], 0xd1b9d3b8
mov dword [esp + 0x324], 0xddeddfbc
mov dword [esp + 0x328], 0xd9dadbea
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x63
ja 0x40e1fb
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x2c8]
add ecx, 0x644cdeb
xor ecx, edx
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x20]
add cl, 0x69
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x2c8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x64
jb 0x40e1c0
sub esi, eax
mov dword [esp + 0x20], 0x77d7798b
mov dword [esp + 0x24], 0x73cb75c4
mov word [esp + 0x28], 0x7170
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xf
ja 0x40e270
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0xd5c8b16
xor ecx, edx
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0x92
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x10
jb 0x40e240
lea ecx, [esp + 0xb0]
lea edx, [esp + 0xa8]
lea edi, [esp + 0x20]
push ecx
push edx
push esi
push eax
push ebx
push edi
push 0x442c50
call fcn.0040c040
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x43e3a8]
xor edi, edi
xor eax, eax
test edi, 0
setne al
jmp dword [eax*4 + 0x43e3c0]
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0xa8]
lea eax, [ecx + ecx*2]
shr eax, 2
movzx edx, byte [esi + ecx - 1]
cmp edx, 0x3d
je 0x40e2d6
cmp edx, 0x2e
jne 0x40e2d7
dec eax
movzx ecx, byte [esi + ecx - 2]
cmp ecx, 0x3d
je 0x40e2e6
cmp ecx, 0x2e
jne 0x40e2e7
dec eax
push eax
call fcn.004092e0
add esp, 4
mov edi, eax
push eax
push esi
call fcn.00431310
add esp, 8
push dword [esp + 0xa8]
call fcn.004340c0
add esp, 4
xor eax, eax
test edi, edi
setne al
jmp dword [eax*4 + 0x43e3c0]
push edi
call fcn.00402560
add esp, 4
mov ebx, eax
jmp dword [0x43e3c8]
push edi
call fcn.004092f0
add esp, 4
push ebx
call fcn.00411590
add esp, 4
push ebx
call fcn.00403160
add esp, 4
lea ebx, [esp + 0x2c8]
mov dword [esp + 0x2c8], 0x19b3b5b0
mov dword [esp + 0x2cc], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40e3b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x2c8]
add eax, 0xafab7b7b
xor eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x20]
add al, 0x99
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x2c8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40e380
push ebx
push dword [esp + 0x18]
call fcn.00402f50
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x43e3d0]
xor eax, eax
cmp dword [esp + 0xa4], 0
setg al
jmp dword [eax*4 + 0x43e3d8]
lea ecx, [esp + 0x2c8]
push 1
call fcn.00409c30
mov eax, 0xffffffff
nop
nop
nop
nop
nop
cmp byte [eax + 0x442f59], 0
lea eax, [eax + 1]
jne 0x40e400
mov dword [esp + 0x20], 0x4e505c7c
mov dword [esp + 0x24], 0x47420b53
mov dword [esp + 0x28], 0x3944
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xb
ja 0x40e47d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x20]
lea esi, [ecx + edx]
add ecx, 0xb4
and ecx, edx
add ecx, ecx
sub esi, ecx
add esi, 0x5eb7e1b4
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x7c
mov edx, dword [esp]
mov byte [esp + edx + 0x20], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xc
jb 0x40e440
lea esi, [esp + 0x2c8]
mov ecx, esi
push eax
push 0x442f58
lea eax, [esp + 0x28]
push eax
call fcn.00409e30
mov ecx, esi
call fcn.0040a500
mov ecx, esi
call fcn.00409c70
xor eax, eax
cmp dword [esp + 0xa4], 0
setg al
jmp dword [eax*4 + 0x43e3d8]
push 0
call fcn.00437ba0
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e3e0]
mov dword [esp + 0x20], 0x4fd349ef
mov dword [esp + 0x24], 0x43104de8
mov dword [esp + 0x28], 0x47ce41e5
mov dword [esp + 0x2c], 0xbbda45e1
mov dword [esp + 0x30], 0xbf29b9de
mov dword [esp + 0x34], 0xb313bd28
mov dword [esp + 0x38], 0xb722b126
mov dword [esp + 0x3c], 0xabf9b5d4
mov dword [esp + 0x40], 0xaf37a935
mov dword [esp + 0x44], 0xa3c2ad3e
mov dword [esp + 0x48], 0xa73ba107
mov dword [esp + 0x4c], 0x9bc8a500
mov dword [esp + 0x50], 0x9f16993d
mov dword [esp + 0x54], 0x93f29d39
mov dword [esp + 0x58], 0x97c591f6
mov dword [esp + 0x5c], 0x8bea9533
mov dword [esp + 0x60], 0x8f17891c
mov dword [esp + 0x64], 0x83278d11
mov dword [esp + 0x68], 0x87138113
mov dword [esp + 0x6c], 0xfb9a8510
mov dword [esp + 0x70], 0xff6af9ab
mov dword [esp + 0x74], 0xf3a5fd9c
mov dword [esp + 0x78], 0xf7a5f190
mov dword [esp + 0x7c], 0xeb79f566
mov dword [esp + 0x80], 0xef78e94e
mov dword [esp + 0x84], 0xe343ed49
mov dword [esp + 0x88], 0xe786e17f
mov dword [esp + 0x8c], 0xdbbae5be
mov dword [esp + 0x90], 0xdf7bd97c
mov dword [esp + 0x94], 0xd3b2dd40
mov dword [esp + 0x98], 0xd7d6d1b6
mov byte [esp + 0x9c], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x7c
ja case.0x40c309.130
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x20]
add ecx, 0x8e9c1f2
xor ecx, edx
mov dword [esp + 0x2c8], ecx
mov ecx, dword [esp + 0x2c8]
add cl, 0x46
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x7d
jb 0x40e600
movzx ecx, word [esp + 0x20]
test cx, cx
je 0x40e661
lea ebx, [esp + 0x2c8]
lea edx, [esp + 0x22]
mov word [ebx], cx
add ebx, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40e650
mov word [ebx], 0
movzx ecx, word [eax]
test cx, cx
je 0x40e691
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], cx
add ebx, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40e680
mov dword [ebx], 0x220022
mov dword [ebx + 4], 0x22
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0x44
mov dword [esp + 0x4c], 1
push 0xc9be8534
push dword [0x443f58]
call fcn.00437c90
add esp, 8
lea ecx, [esp + 4]
lea edx, [esp + 0x2c8]
push ecx
lea ecx, [esp + 0x24]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e3e8]
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], 0x585b5a45
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 3
ja 0x40e7c5
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0xa0]
add ecx, 0x81c0ccef
xor ecx, edx
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0x55
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0xa0], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 4
jb 0x40e78c
mov ecx, dword [0x443f64]
test ecx, ecx
je case.0x40e4b1.0
mov edx, dword [esp + 0xa0]
xor esi, esi
mov edi, dword [0x443f68]
cmp dword [edi + esi*8], 0x625b6034
je 0x40e7ee
inc esi
cmp ecx, esi
jne 0x40e7de
jmp case.0x40e4b1.0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x40e4b1.0
push eax
push 1
push dword [0x443f6c]
push ecx
call fcn.00436330
add esp, 0x10
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [esp + 0xac8]
call fcn.00409c70
lea ecx, [esp + 0xb30]
call fcn.00409c70
lea ecx, [esp + 0xb98]
call fcn.00409c70
lea ecx, [esp + 0xc00]
call fcn.00409c70
lea ecx, [esp + 0xc68]
call fcn.00409c70
lea ecx, [esp + 0x1b8]
call fcn.00409c70
mov al, 1
jmp 0x40dda2
mov dword [esp + 0x30], edi
jmp 0x40e922
mov ebx, dword [esp + 0x124]
mov eax, ebx
xor eax, 1
and ebx, 1
lea ebx, [eax + ebx*2]
push edi
call fcn.00403120
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x43e3f8]
mov dword [esp + 0x124], ebx
push ebx
push edi
call fcn.00403130
add esp, 8
mov ebx, eax
mov word [esp + 0x48], 0xc758
mov dword [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40e9b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x5a119051
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0x6b
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40e980
push 3
push esi
push ebx
call fcn.004030b0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43e400]
mov word [esp + 0x48], 0x39b4
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40ea39
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xccc2f236
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xf2
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40ea00
push esi
push ebx
call fcn.00402e80
add esp, 8
fnstcw word [esp + 0x112]
movzx eax, word [esp + 0x112]
or eax, 0xc00
mov word [esp + 0x122], ax
fldcw word [esp + 0x122]
fistp dword [esp + 0x138]
fldcw word [esp + 0x112]
mov eax, dword [esp + 0x138]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x43e408]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x43e410]
sete al
movzx eax, al
jmp dword [eax*4 + 0x43e418]
jmp dword [0x43e4a8]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x43e420]
mov word [esp + 0x48], 0xe170
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40eb29
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x140039d8
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xc8
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40eaf0
push esi
push ebx
call fcn.00402e20
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x48], 0x2bba
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x40eba5
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + 0xb7]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x1a309db7
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0x6d
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x40eb60
push esi
push ebx
call fcn.00402e20
add esp, 8
mov edx, dword [esp + 0x1c]
test edx, edx
sete ch
test eax, eax
sete cl
or cl, ch
movzx ecx, cl
mov dword [esp + 0x14], eax
jmp dword [ecx*4 + 0x43e5a8]
mov ecx, edx
jmp dword [0x43e5b4]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x40ebe0
xor ebx, ebx
mov eax, dword [esp + 0x1c]
cmp edi, eax
jbe 0x40ec27
cmp byte [eax], 0
je 0x40ec27
xor ebx, ebx
mov esi, dword [esp + 0x1c]
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.0040d220
add esp, 0xc
inc ebx
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x40ec27
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40ec00
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40ec35
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov esi, eax
mov dword [esp + 0x48], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x40ec8b
mov ebx, dword [esp + 0x1c]
cmp ebx, edi
jae 0x40ec8b
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40ec8b
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x40ec8b
add ebx, eax
cmp ebx, edi
jb 0x40ec60
mov word [esi], 0
mov eax, dword [esp + 0x14]
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x40eca0
xor ebx, ebx
mov eax, dword [esp + 0x14]
cmp eax, edi
jae 0x40ece7
cmp byte [eax], 0
je 0x40ece7
xor ebx, ebx
mov esi, dword [esp + 0x14]
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.0040d220
add esp, 0xc
inc ebx
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x40ece7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40ecc0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x40ecf5
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov esi, eax
mov dword [esp + 0x48], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
cmp esi, eax
jae 0x40ed4b
mov ebx, dword [esp + 0x14]
cmp ebx, edi
jae 0x40ed4b
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x40ed4b
lea eax, [esp + 0x48]
push eax
push edi
push ebx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x40ed4b
add ebx, eax
cmp ebx, edi
jb 0x40ed20
mov word [esi], 0
mov word [esp + 0x48], 0xef1b
mov byte [esp + 0x4a], 0x66
mov dword [esp + 0x4b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40edb9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x90c15d69
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xf3
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40ed80
lea eax, [esp + 0x48]
push eax
push dword [ebp + 8]
call fcn.00402ef0
add esp, 8
mov edx, dword [esp + 0x1c]
mov ecx, edx
jmp case.0x40ebc6.3
lea eax, [esp + 0x48]
push eax
push dword [ebp + 8]
call fcn.00402ef0
add esp, 8
mov edx, dword [esp + 0x1c]
mov ecx, edx
jmp dword [0x43e5b8]
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne case.0x40ebc6.3
xor edi, edi
cmp esi, edx
jbe 0x40ee47
cmp byte [edx], 0
je 0x40ee47
xor edi, edi
mov ebx, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d220
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x40ee47
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40ee20
mov eax, edi
inc eax
jns 0x40ee53
mov eax, 0xffffffff
jmp 0x40ee5a
lea eax, [edi*2 + 2]
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x40eec0
mov edi, dword [esp + 0x20]
cmp dword [esp + 0x1c], esi
jae 0x40eec0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
nop
nop
cmp byte [ebx], 0
je 0x40eec0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40eec0
add ebx, eax
cmp ebx, esi
jb 0x40ee90
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x14]
lea esi, [eax - 1]
mov word [edi], 0
nop
nop
nop
nop
cmp byte [esi + 1], 0
lea esi, [esi + 1]
jne 0x40eed0
xor edi, edi
cmp eax, esi
jae 0x40ef17
cmp byte [eax], 0
je 0x40ef17
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d220
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae 0x40ef17
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x40eef0
mov eax, edi
inc eax
jns 0x40ef23
mov eax, 0xffffffff
jmp 0x40ef2a
lea eax, [edi*2 + 2]
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x40ef90
mov edi, dword [esp + 0x38]
cmp dword [esp + 0x14], esi
jae 0x40ef90
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
nop
nop
cmp byte [ebx], 0
je 0x40ef90
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40ef90
add ebx, eax
cmp ebx, esi
jb 0x40ef60
nop
nop
nop
nop
nop
mov word [edi], 0
mov word [esp + 0x48], 0xef1b
mov byte [esp + 0x4a], 0x66
mov dword [esp + 0x4b], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x40ede0
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x90c15d69
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xf3
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x40efc0
jmp 0x40ede0
mov dword [esp + 4], 0xf9c
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xb4]
cmp eax, 3
ja 0x40f062
nop
nop
nop
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x74f4a27d
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x8f
mov ecx, dword [esp + 0xb4]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp eax, 4
jb 0x40f020
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402e20
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x48], 0x9b1a
lea eax, [esp + 0x4b]
mov word [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 7
ja 0x40f0d9
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x93dafb1b
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0x79
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 8
jb 0x40f0a0
push esi
push ebx
call fcn.00402e20
add esp, 8
mov ebx, dword [esp + 0x14]
test ebx, ebx
sete dl
test eax, eax
sete cl
or cl, dl
movzx ecx, cl
jmp dword [ecx*4 + 0x43e640]
mov ecx, ebx
mov edx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne 0x40f110
mov dword [esp + 0x1c], eax
xor edi, edi
cmp ebx, edx
jbe 0x40f157
cmp byte [edx], 0
je 0x40f157
xor edi, edi
mov esi, dword [esp + 0x14]
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.0040d220
add esp, 0xc
inc edi
lea ecx, [esi + eax]
cmp ecx, ebx
jae 0x40f157
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x40f130
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x40f165
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
jae 0x40fa61
mov edi, dword [esp + 0x24]
cmp esi, ebx
jae 0x40fa61
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi], 0
je 0x40fa61
lea eax, [esp + 0x48]
push eax
push ebx
push esi
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x40fa5d
add esi, eax
cmp esi, ebx
mov eax, dword [esp + 0x1c]
jb 0x40f1b0
jmp 0x40fa61
sete al
movzx eax, al
jmp dword [eax*4 + 0x43e428]
mov word [esp + 0x48], 0x49f8
mov dword [esp + 0x4a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x40f259
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x2d62c06e
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xda
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x40f220
push 2
push esi
push ebx
call fcn.004030b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e430]
mov dword [esp + 0x44], 0x9105
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 3
ja 0x40f2cb
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x44]
lea edx, [eax + ecx]
add eax, 0xe4
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x7c522fe4
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x8c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x44], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 4
jb 0x40f290
push 5
lea eax, [esp + 0x48]
push eax
push ebx
call fcn.004030b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e438]
mov word [esp + 0xb4], 0xc15a
lea eax, [esp + 0xfe]
mov byte [eax - 0x46], 0
mov word [eax - 0x48], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x40f354
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 + 0xb4]
add eax, 0x1152b50
xor eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x70
mov ecx, dword [esp]
mov byte [esp + ecx + 0xb4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x40f320
push 2
lea eax, [esp + 0xb8]
push eax
push ebx
call fcn.004030b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e440]
mov word [esp + 4], 0x8124
lea eax, [esp + 6]
mov word [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x40f3ce
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x59b44f20
xor eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x60
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x40f3a0
push 3
lea eax, [esp + 8]
push eax
push ebx
call fcn.004030b0
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e448]
jmp case.0x40f0f6.1
mov esi, eax
xor eax, eax
test esi, esi
setne al
mov dword [esp + 0x14], 0
xor ebx, ebx
jmp dword [eax*4 + 0x43e5c0]
mov eax, dword [esp + 0x1c]
mov word [edi], 0
xor esi, esi
mov edi, 0xfffffffe
nop
nop
nop
add edi, 2
cmp byte [eax + esi], 0
lea esi, [esi + 1]
jne 0x40fa70
lea eax, [edi + 2]
test esi, esi
jns 0x40fa88
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0x48], 0
add edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x3c], eax
cmp eax, edi
mov ecx, dword [esp + 0x1c]
jae 0x40fb05
lea ebx, [ecx + esi]
dec ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
cmp ecx, ebx
jae 0x40fb05
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x40fb05
lea eax, [esp + 0x48]
push eax
push ebx
push ecx
mov esi, ecx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov edx, dword [esp + 0x10]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x10], edx
cmp edx, edi
jae 0x40fb05
add esi, eax
cmp esi, ebx
mov ecx, esi
jb 0x40fad0
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 4], 0x4ef7e3
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xb4]
cmp eax, 3
ja 0x40fb72
nop
nop
nop
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
movzx ecx, byte [esp + ecx + 4]
add eax, 0xd81f4ced
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x5f
mov ecx, dword [esp + 0xb4]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp eax, 4
jb 0x40fb30
lea eax, [esp + 4]
push eax
push dword [ebp + 8]
call fcn.00402ef0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x38], eax
test eax, eax
setne cl
xor ebx, ebx
mov dword [esp + 0x20], 0
lea esi, [esp + 0x48]
jmp dword [ecx*4 + 0x43e648]
mov ecx, esi
push 3
call fcn.00409c30
push dword [esp + 0x20]
push ebx
push dword [esp + 0x44]
push dword [esp + 0x30]
push esi
call fcn.00415df0
add esp, 0x14
mov ecx, esi
call fcn.0040a500
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x43e668]
push dword [esp + 0x38]
call fcn.00403120
add esp, 4
mov ecx, eax
mov dword [esp + 0x20], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x40fc60
mov esi, eax
test dl, dl
jne 0x40fc66
mov ecx, esi
push ecx
call fcn.004092e0
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x20]
mov dword [eax], ecx
add ebx, 4
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x34], ebx
jmp dword [eax*4 + 0x43e650]
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
lea ecx, [ebx + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x43e658]
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 + 0x43e658]
xor ecx, ecx
xor eax, eax
cmp ecx, dword [esp + 0x20]
setb al
lea esi, [esp + 0x48]
jmp dword [eax*4 + 0x43e660]
mov ecx, esi
call fcn.00409c70
jmp case.0x40f0f6.1
mov word [esp + 0x28], 0x9286
mov byte [esp + 0x2a], 0x22
lea eax, [esp + 0x29]
mov byte [eax + 4], 0
mov word [eax + 2], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x41002b
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + ecx]
add eax, 0xc8
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x9130fcc8
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x18
mov ecx, dword [esp]
mov byte [esp + ecx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x40fff0
push 3
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.004030b0
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x43e450]
mov word [esp + 0x48], 0x7b94
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x4100b4
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
lea edx, [eax + ecx]
add eax, 0x3f
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xf258f3f
mov dword [esp + 0xb4], edx
mov eax, dword [esp + 0xb4]
add al, 0xc5
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x410070
push esi
push ebx
call fcn.00402e20
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 4], 0xfa3
mov dword [esp + 0xb4], 0
mov eax, dword [esp + 0xb4]
cmp eax, 3
ja 0x410132
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0xb4]
movzx ecx, byte [esp + ecx + 4]
add eax, 0x144c267d
xor eax, ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
add al, 0x8f
mov ecx, dword [esp + 0xb4]
mov byte [esp + ecx + 4], al
inc dword [esp + 0xb4]
mov eax, dword [esp + 0xb4]
cmp eax, 4
jb 0x4100f0
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402ef0
add esp, 8
mov dword [esp + 0x38], eax
mov word [esp + 0x48], 0x813a
lea eax, [esp + 0x4b]
mov byte [eax + 3], 0
mov dword [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x4101a9
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x6252cba0
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xe0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x410170
push esi
push ebx
call fcn.00402e20
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x48], 0x768
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 4
ja 0x410219
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xc258b401
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0xfb
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 5
jb 0x4101e0
push esi
push ebx
call fcn.00402e80
add esp, 8
mov word [esp + 0x48], 0x7a6a
mov byte [esp + 0x4a], 6
lea eax, [esp + 0x4b]
mov byte [eax + 2], 0
mov word [eax], 0
fnstcw word [esp + 0x110]
movzx eax, word [esp + 0x110]
or eax, 0xc00
mov word [esp + 0x120], ax
fldcw word [esp + 0x120]
fistp dword [esp + 0x134]
fldcw word [esp + 0x110]
mov eax, dword [esp + 0x134]
mov dword [esp + 0x24], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 5
ja 0x4102c9
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xe0f6a581
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0x7b
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 6
jb 0x410290
push esi
push ebx
call fcn.00402e80
add esp, 8
mov word [esp + 0x48], 0x878e
mov byte [esp + 0x4a], 0x2a
mov dword [esp + 0x4b], 0
fnstcw word [esp + 0x10e]
movzx eax, word [esp + 0x10e]
or eax, 0xc00
mov word [esp + 0x11e], ax
fldcw word [esp + 0x11e]
fistp dword [esp + 0x130]
fldcw word [esp + 0x10e]
mov eax, dword [esp + 0x130]
mov dword [esp + 0x3c], eax
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 6
ja 0x410379
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0x1129d9c7
xor eax, ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xb4]
add al, 0x1d
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x48], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 7
jb 0x410340
push esi
push ebx
call fcn.00402f50
add esp, 8
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x20]
lea edi, [eax - 1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi + 1], 0
lea edi, [edi + 1]
jne 0x4103a0
xor ebx, ebx
cmp eax, edi
jae 0x4103e7
cmp byte [eax], 0
je 0x4103e7
xor ebx, ebx
mov esi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push edi
push esi
call fcn.0040d220
add esp, 0xc
inc ebx
lea ecx, [esi + eax]
cmp ecx, edi
jae 0x4103e7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4103c0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4103f5
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ecx, dword [esp + 0x20]
jae 0x410469
mov esi, dword [esp + 0x40]
cmp ecx, edi
jae 0x410469
mov esi, dword [esp + 0x40]
mov dword [esp + 0x1c], ebx
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x410469
lea eax, [esp + 0x48]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x410465
add ebx, eax
cmp ebx, edi
mov ecx, ebx
mov ebx, dword [esp + 0x1c]
jb 0x410430
jmp 0x410469
mov ebx, dword [esp + 0x1c]
mov word [esi], 0
lea eax, [esp + 4]
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x50]
push edi
push 0
call dword [0x443f60]
mov esi, dword [esp + 4]
lea eax, [esi + esi]
test esi, esi
jns 0x410495
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov ecx, eax
lea eax, [esp + 4]
push eax
push esi
mov dword [esp + 0x3c], ecx
push ecx
push ebx
push edi
push 0
call dword [0x443f60]
jmp dword [0x43e458]
push edi
call fcn.004092f0
add esp, 4
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp 0x41117d
mov ecx, dword [esp + 0x14]
mov esi, ecx
jmp 0x411175
mov edi, dword [esp + 0x1c]
inc edi
push ebx
call fcn.00403120
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x43e460]
mov dword [esp + 0x1c], edi
push edi
push ebx
call fcn.00403100
add esp, 8
push eax
call fcn.00402e60
add esp, 4
mov edi, eax
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x43e470]
mov eax, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410f50
mov esi, ebx
sub esi, edi
mov eax, esi
inc eax
jns 0x410f70
mov eax, 0xffffffff
jmp 0x410f77
lea eax, [esi*2 + 2]
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0xb4], 0
lea ecx, [eax + esi*2]
mov esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
jae 0x410ff0
mov esi, dword [esp + 0x14]
cmp edi, ebx
jae 0x410ff0
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x410ff0
lea eax, [esp + 0xb4]
push eax
push ebx
push edi
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0xb4]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x410ff0
add edi, eax
cmp edi, ebx
jb 0x410fb0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
xor eax, eax
cmp dword [esp + 0x104], 0
setg al
mov word [esi], 0
push 0
push eax
push dword [esp + 0x2c]
push dword [esp + 0x48]
mov edi, dword [esp + 0x24]
push edi
push dword [esp + 0x48]
push dword [esp + 0x38]
lea esi, [esp + 0x64]
push esi
call fcn.00417e80
add esp, 0x20
mov ebx, dword [esp + 0x38]
jmp dword [0x43e478]
push edi
call fcn.004092f0
add esp, 4
jmp case.0x40e312.45
jmp dword [0x43e468]
push dword [esp + 0x20]
call fcn.004092f0
add esp, 4
mov eax, dword [case.0x40e312.43]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov edi, dword [esp + 0x30]
jmp dword [0x43e4a0]
push dword [esp + 0x34]
call fcn.004092f0
add esp, 4
mov ecx, esi
call fcn.0040a500
jmp case.0x40fd25.12
lea eax, [esi + 1]
cmp byte [esi], 0
je 0x411181
mov esi, eax
jmp 0x411175
xor edi, edi
cmp esi, ecx
jbe case.0x40c309.163
cmp byte [ecx], 0
je case.0x40c309.163
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x48], 0
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d220
add esp, 0xc
inc edi
lea ecx, [ebx + eax]
cmp ecx, esi
jae case.0x40c309.163
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4111a0
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4111d5
mov eax, 0xffffffff
push eax
call fcn.004092e0
add esp, 4
mov dword [esp + 0x48], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
cmp eax, ecx
mov ebx, dword [esp + 0x14]
jae 0x41123b
mov edi, dword [esp + 0x20]
cmp ebx, esi
jae 0x41123b
mov edi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x41123b
lea eax, [esp + 0x48]
push eax
push esi
push ebx
call fcn.0040d220
add esp, 0xc
movzx ecx, word [esp + 0x48]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x41123b
add ebx, eax
cmp ebx, esi
jb 0x411210
mov word [edi], 0
lea esi, [esp + 0x48]
mov ecx, esi
push 1
call fcn.00409c30
xor edi, edi
mov ebx, dword [esp + 0x38]
jmp case.0x40c309.166
mov word [esp + 0x48], 0x9bf5
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x4114be
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xe9d8681b
xor eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x79
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x411490
push 2
push esi
push ebx
call fcn.004030b0
add esp, 0xc
jmp dword [0x43e4b0]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x43e4b8]
mov eax, dword [case.0x40e9cc.1]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [esp + 0x48], 0x9bf5
lea eax, [esp + 0x4b]
mov byte [eax + 1], 0
mov word [eax - 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 4
ja 0x41154e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x48]
add eax, 0xe9d8681b
xor eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0x79
mov ecx, dword [esp]
mov byte [esp + ecx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 5
jb 0x411520
push 2
push esi
push ebx
call fcn.004030b0
add esp, 0xc
jmp case.0x40e312.58
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
fadd dword [eax]
mov al, byte [0x7e0040dd]
fadd dword [eax]
xchg eax, ebx
inc eax
add byte [eax], dh
fld dword [eax]
xor cl, bl
inc eax
add byte [edx], dh
fld dword [eax]
xor cl, bl
inc eax
add byte [edi - 0x27], cl
inc eax
add byte [eax - 0x27], al
inc eax
add byte [edi - 0x27], cl
inc eax
add byte [ebp + ebx*8 - 0x269cffc0], dl
inc eax
add byte [ebp + ebx*8 - 0x267affc0], dl
inc eax
add byte [ebp + ebx*8 - 0x2380ffc0], dl
inc eax
add byte [ebx + 0x7f0040d9], cl
fadd qword [eax]
stosb byte es:[edi], al
fld qword [eax]
rcr ebp, 0x40
add byte [eax - 1627373347], bh
loop 0x43e3eb
add byte [ebx + 0x10040e2], dh
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edi + 0x4c0040e2], bl
jecxz 0x43e403
add byte [ecx], bl
jecxz 0x43e407
add byte [edx], ch
jecxz 0x43e40b
add byte [ebx], dh
jecxz 0x43e40f
add ah, dl
jecxz 0x43e413
add al, ch
jecxz 0x43e417
add byte [eax], cl
call 0xe4fbe41e
inc eax
add byte [eax], cl
call 0xe513e426
inc eax
add byte [eax], cl
call 0xe7afe42e
inc eax
add byte [edi + 0x40], ch
add ch, bh
call 0x15bde436
inc ecx
add byte [edx + 0x15], bh
inc ecx
add byte [ebx], bh
jmp 0xea16e442
add byte [eax], dl
jmp 0xeacde44a
add byte [edx - 0x4fffbf16], cl
ljmp 0x40
add byte [eax - 0x66ffbf16], dh
ljmp 0x40
add byte [ecx - 0x1ffbf16], bl
add dh, bh
out dx, eax
inc eax
add al, ah
adc al, 0x41
add byte [esi - 0x41ffbf16], ah
ljmp 0x40