Function at 0x407140
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x3ec
mov esi, dword [esp + 0x400]
mov word [esi + 0x8392], 1
mov ecx, esi
xor edx, edx
push 0
push 0xf
push 0x120
call fcn.004089f0
add esp, 0xc
mov ecx, esi
mov edx, 1
push 0
push 0xf
push 0x20
call fcn.004089f0
add esp, 0xc
lea eax, [esi + 0x8f12]
mov dword [esp + 0x64], eax
lea eax, [esi + 0x9032]
mov dword [esp + 0xec], eax
lea eax, [esi + 0x8612]
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], 0x11e
mov eax, 0xe723b8a
jmp 0x4071e0
mov dword [esp + 0x10], 0
mov eax, 0x7675f329
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0xf8f64792
jg 0x407270
cmp eax, 0xc57f170e
jle 0x407360
cmp eax, 0xe6ab7757
jg 0x4073c4
cmp eax, 0xd573a474
jle 0x40767d
cmp eax, 0xdc626b61
jg 0x40790c
cmp eax, 0xd7c5586b
jg 0x40803f
cmp eax, 0xd573a475
je 0x4085bc
cmp eax, 0xd619b0cc
jne 0x4071e0
mov ecx, dword [esp + 0xc8]
mov eax, 0x952e9c4a
sub ecx, 1
mov dword [esp + 0x144], ecx
jb 0x407251
mov eax, 0xf8f64793
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x100], ecx
jmp 0x4071e0
cmp eax, 0x37f23197
jg 0x4072e0
cmp eax, 0x19b13f1e
jle 0x40743f
cmp eax, 0x27688a30
jle 0x4075c1
cmp eax, 0x304cd868
jg 0x407873
cmp eax, 0x285952f6
jg 0x407f2c
cmp eax, 0x27688a31
je 0x40846e
cmp eax, 0x28438e7b
jne 0x4071e0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x30]
cmp byte [ecx + eax - 1], 0
mov eax, 0x973826b1
je 0x4071e0
mov eax, 0xea1a807f
jmp 0x4071e0
cmp eax, 0x5b2da286
jle 0x407490
cmp eax, 0x67d64e0e
jle 0x407606
cmp eax, 0x6f84fc0c
jg 0x4078bf
cmp eax, 0x6bd87097
jg 0x407f72
cmp eax, 0x67d64e0f
je 0x408480
cmp eax, 0x6a0650aa
jne 0x4071e0
mov eax, dword [esp + 4]
lea ecx, [eax + 1]
mov eax, 0xe7c9efc7
mov dword [esp + 0x10], ecx
cmp ecx, 6
je 0x40733c
mov eax, 0x7675f329
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xa8], ecx
jmp 0x4071e0
cmp eax, 0xa0e8285e
jle 0x4074e5
cmp eax, 0xb026f676
jle 0x407789
cmp eax, 0xbb64fb11
jg 0x40795e
cmp eax, 0xb70b6f58
jg 0x4080a8
cmp eax, 0xb026f677
je 0x408645
cmp eax, 0xb6bc7c71
jne 0x4071e0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
add word [eax], cx
mov eax, 0xd0050e51
mov edx, dword [esp + 0x50]
mov dword [esp + 0xa0], edx
mov ebp, ecx
jmp 0x4071e0
cmp eax, 0xedb1a066
jg 0x407726
cmp eax, 0xea1a807e
jle 0x4079a7
cmp eax, 0xea96d588
jg 0x407ee1
cmp eax, 0xea1a807f
je 0x408439
cmp eax, 0xea26d50c
jne 0x4071e0
mov eax, 0x55098f8b
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x160]
jb 0x407412
mov eax, 0x80fa4ee
mov bl, bh
mov ecx, dword [esp + 0x78]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xd8], ecx
jmp 0x4071e0
cmp eax, 0x601cb54
jg 0x407536
cmp eax, 0xfefb1d75
jle 0x4079d2
cmp eax, 0x214134e
jg 0x407cbb
cmp eax, 0xfefb1d76
je 0x408153
cmp eax, 0x3e018b
jne 0x4071e0
mov eax, 0x336775f0
cmp dword [esp + 4], 3
jb 0x4071e0
mov eax, 0x7cdddde
jmp 0x4071e0
cmp eax, 0x47c2aa80
jg 0x407583
cmp eax, 0x3f33eaff
jle 0x407a24
cmp eax, 0x4503a5e5
jg 0x407cf8
cmp eax, 0x3f33eb00
je 0x40817d
cmp eax, 0x445ee4c1
jne 0x4071e0
inc word [esi + 0x8636]
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x16c], 0x12
mov eax, dword [esp + 0x18]
add al, 0xf5
jmp 0x407bcf
cmp eax, 0x93143551
jg 0x4076d8
cmp eax, 0x8c0fa4a6
jle 0x407b95
cmp eax, 0x8f8c64e5
jg 0x407e07
cmp eax, 0x8c0fa4a7
je 0x408310
cmp eax, 0x8d04d904
jne 0x4071e0
mov eax, 0x881dbbb1
cmp dword [esp + 0x18], 0xb
jb 0x4071e0
mov eax, 0x445ee4c1
jmp 0x4071e0
cmp eax, 0xbd8128c
jle 0x407a64
cmp eax, 0x15fdf18c
jg 0x407d20
cmp eax, 0xbd8128d
je 0x40819f
cmp eax, 0xe723b8a
jne 0x4071e0
mov eax, 0x28438e7b
cmp dword [esp + 0x34], 0x102
jge 0x407576
mov eax, 0xea1a807f
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
jmp 0x4071e0
cmp eax, 0x55098f8a
jle 0x407a9f
cmp eax, 0x5632466b
jg 0x407d48
cmp eax, 0x55098f8b
je 0x4081b9
cmp eax, 0x55c92377
jne 0x4071e0
mov dword [esp + 0x5c], 0
mov eax, 0x9595a545
jmp 0x4071e0
cmp eax, 0x204577f1
jle 0x407ad2
cmp eax, 0x2437baff
jg 0x407d7b
cmp eax, 0x204577f2
je 0x40826f
cmp eax, 0x20574351
jne 0x4071e0
cmp dword [esi + 0x44], 8
mov eax, 0xc3c484e8
jae 0x4071e0
mov eax, 0x55c92377
jmp 0x4071e0
cmp eax, 0x5ef51443
jle 0x407b19
cmp eax, 0x600aaabe
jg 0x407db3
cmp eax, 0x5ef51444
je 0x408282
cmp eax, 0x5fe3b964
jne 0x4071e0
mov eax, dword [esp + 8]
lea ecx, [eax + 1]
mov eax, 0x3944db89
mov dword [esp + 0x18], ecx
cmp ecx, 0x8a
je 0x40764f
mov eax, 0x7675f329
mov edx, dword [esp + 0x88]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x148], ecx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x10], ecx
jmp 0x4071e0
cmp eax, 0xcc9ec8b7
jle 0x407b57
cmp eax, 0xd177482d
jg 0x407dd3
cmp eax, 0xcc9ec8b8
je 0x4082e5
cmp eax, 0xd0050e51
jne 0x4071e0
mov ecx, ebp
mov eax, 0xd7c5586c
sub ecx, 1
mov dword [esp + 0x164], ecx
jb 0x4076c1
mov eax, 0xfefb1d76
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x3c], ecx
jmp 0x4071e0
cmp eax, 0x9689ee77
jle 0x407be7
cmp eax, 0x973826b0
jg 0x407e37
cmp eax, 0x9689ee78
je 0x408332
cmp eax, 0x96fc9d3a
jne 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0x5ef51444
mov dword [esp + 0x130], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0x17299989
jmp 0x4071e0
cmp eax, 0xf242daeb
jle 0x407c2c
cmp eax, 0xf6c5c4d8
jg 0x407e67
cmp eax, 0xf242daec
je 0x408384
cmp eax, 0xf6290e17
jne 0x4071e0
mov ecx, dword [esp + 0x94]
mov eax, 0x4d39b64d
sub ecx, 1
mov dword [esp + 0x158], ecx
jb 0x40776f
mov eax, 0x2b1ff08a
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x10c], ecx
jmp 0x4071e0
cmp eax, 0xa8662df4
jle 0x407c7c
cmp eax, 0xaa50dac5
jg 0x407ea4
cmp eax, 0xa8662df5
je 0x4083da
cmp eax, 0xa897c6d1
jne 0x4071e0
mov edi, dword [esp + 0x30]
push edi
push dword [esp + 0x68]
lea eax, [esp + 0x2b4]
push eax
call fcn.00409580
add esp, 0xc
lea eax, [esp + edi]
add eax, 0x2ac
mov esi, dword [esp + 0x28]
push esi
push dword [esp + 0xf0]
push eax
call fcn.00409580
add esp, 0xc
lea eax, [esi + edi]
mov dword [esp + 0x160], eax
mov esi, dword [esp + 0x400]
mov eax, dword [esp + 0x24]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov dword [eax + 0x20], 0
mov word [eax + 0x24], 0
mov bh, 0xff
mov dword [esp + 0x44], 0
mov eax, 0xea26d50c
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
jmp 0x4071e0
cmp eax, 0x35f29b66
jg 0x407fa1
cmp eax, 0x304cd869
je 0x4084b1
cmp eax, 0x336775f0
jne 0x4071e0
movzx eax, bl
mov ecx, dword [esp + 4]
add word [esi + eax*2 + 0x8612], cx
mov eax, 0x93143552
mov edx, dword [esp + 0xc]
mov dword [esp + 0x98], edx
mov dword [esp + 0x84], ecx
jmp 0x4071e0
cmp eax, 0x73570512
jg 0x407ff4
cmp eax, 0x6f84fc0d
je 0x4084e3
cmp eax, 0x710a43ac
jne 0x4071e0
mov eax, 0x5fe3b964
cmp dword [esp + 4], 0
je 0x4078f1
mov eax, 0x3e018b
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x9c], ecx
jmp 0x4071e0
cmp eax, 0xe416d71b
jg 0x408072
cmp eax, 0xdc626b62
je 0x4085ce
cmp eax, 0xe01a371d
jne 0x4071e0
mov ecx, dword [esp + 0xfc]
lea eax, [ecx + 1]
mov dword [esp + 0xe8], eax
mov byte [esp + ecx + 0x16c], 0
mov eax, 0x285952f7
mov ecx, dword [esp + 0x13c]
mov dword [esp + 0xe0], ecx
jmp 0x4071e0
cmp eax, 0xc10f388d
jg 0x4080e0
cmp eax, 0xbb64fb12
je 0x40865a
cmp eax, 0xbf25c390
jne 0x4071e0
mov eax, dword [esp + 0x38]
movzx eax, byte [eax + 0x441dea]
cmp byte [esi + eax + 0x9152], 0
mov eax, 0xc8f97a8d
je 0x4071e0
mov eax, 0xeba6b0f4
jmp 0x4071e0
cmp eax, 0xe7c495fc
jle 0x408118
cmp eax, 0xe7c495fd
je 0x4071b4
cmp eax, 0xe7c9efc7
jne 0x4071e0
mov eax, 0x35f29b67
jmp 0x4071e0
cmp eax, 0xf8f64793
je 0x4086f1
cmp eax, 0xf99812d2
je 0x408778
cmp eax, 0xfaa2e126
jne 0x4071e0
mov eax, dword [esp + 0x12c]
lea ecx, [eax + 1]
mov dword [esp + 0xac], ecx
mov byte [esp + eax + 0x16c], 0
mov eax, 0x6bd87098
mov ecx, dword [esp + 0x15c]
mov dword [esp + 0x8c], ecx
jmp 0x4071e0
cmp eax, 0x37f23198
je 0x408721
cmp eax, 0x3944db89
je 0x408791
cmp eax, 0x3d6e8ea6
jne 0x4071e0
mov eax, dword [esp + 0x28]
dec eax
mov ecx, dword [esp + 0x114]
shl eax, cl
or dword [esi + 0x48], eax
add dword [esi + 0x44], 5
mov eax, 0x6c120e98
jmp 0x4071e0
cmp eax, 0x601cb55
je 0x40873f
cmp eax, 0x7cdddde
je 0x40879b
cmp eax, 0x80fa4ee
jne 0x4071e0
mov eax, 0x88080be9
cmp dword [esp + 4], 0
je 0x4071e0
mov eax, 0x61121a36
jmp 0x4071e0
cmp eax, 0x47c2aa81
je 0x408766
cmp eax, 0x4d39b64d
je 0x4087cc
cmp eax, 0x507c69d2
jne 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0x20574351
jmp 0x4071e0
cmp eax, 0x19b13f1f
je 0x4087e9
cmp eax, 0x1f3099b5
je 0x408834
cmp eax, 0x1fe7f684
jne 0x4071e0
mov eax, 0xbb64fb12
cmp dword [esp + 4], 0
je 0x407b04
mov eax, 0x4503a5e6
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x74], ecx
jmp 0x4071e0
cmp eax, 0x5b2da287
je 0x40881a
cmp eax, 0x5ba4eb8a
je 0x408856
cmp eax, 0x5cee87fb
jne 0x4071e0
movzx eax, byte [esi + 0x48]
mov edi, dword [esp + 0xf0]
lea ecx, [edi + 1]
mov dword [esi + 0x30], ecx
mov byte [edi], al
mov eax, 0x4537f51d
jmp 0x4071e0
cmp eax, 0xc57f170f
je 0x408869
cmp eax, 0xc8f97a8d
je 0x408899
cmp eax, 0xc9350bd3
jne 0x4071e0
movzx eax, byte [esi + 0x48]
mov edi, dword [esp + 0x134]
lea ecx, [edi + 1]
mov dword [esi + 0x30], ecx
mov byte [edi], al
mov eax, 0xdc626b62
jmp 0x4071e0
cmp eax, 0x82030a1f
je 0x4088ac
cmp eax, 0x88080be9
je 0x408900
cmp eax, 0x881dbbb1
jne 0x4071e0
inc word [esi + 0x8634]
mov ecx, dword [esp + 0x50]
mov byte [esp + ecx + 0x16c], 0x11
mov eax, dword [esp + 0x18]
add al, 0xfd
lea edx, [ecx + 2]
mov dword [esp + 0x3c], edx
mov byte [esp + ecx + 0x16d], al
mov eax, 0xd7c5586c
jmp 0x4071e0
cmp eax, 0x93143552
je 0x4088cc
cmp eax, 0x952e9c4a
je 0x40891e
cmp eax, 0x9595a545
jne 0x4071e0
mov eax, 0xa0e8285f
mov ecx, dword [esp + 0x124]
cmp dword [esp + 0x5c], ecx
jl 0x407c1f
mov eax, 0xcc9ec8b8
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x68], ecx
jmp 0x4071e0
cmp eax, 0xedb1a067
je 0x408933
cmp eax, 0xeef52723
je 0x40897b
cmp eax, 0xeef594a5
jne 0x4071e0
mov ecx, dword [esp + 4]
mov eax, dword [esp + 0xd0]
add word [esi + eax*2 + 0x8612], cx
mov eax, 0xf6290e17
mov edx, dword [esp + 0x14]
mov dword [esp + 0xb8], edx
mov dword [esp + 0x94], ecx
jmp 0x4071e0
cmp eax, 0xa0e8285f
je 0x408950
cmp eax, 0xa2cedbf3
je 0x4089c6
cmp eax, 0xa6ecbca7
jne 0x4071e0
mov eax, 0x5632466c
cmp dword [esp + 0x4c], 2
jge 0x407cae
mov eax, 0xa897c6d1
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x28], ecx
jmp 0x4071e0
cmp eax, 0x214134f
je 0x4081e3
cmp eax, 0x37576f1
jne 0x4071e0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
add word [eax], cx
mov eax, 0x285952f7
mov edx, dword [esp + 0xc]
mov dword [esp + 0xe8], edx
mov dword [esp + 0xe0], ecx
jmp 0x4071e0
cmp eax, 0x4503a5e6
je 0x4081fd
cmp eax, 0x4537f51d
jne 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0xf99812d2
jmp 0x4071e0
cmp eax, 0x15fdf18d
je 0x408217
cmp eax, 0x17299989
jne 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0x6c120e98
jmp 0x4071e0
cmp eax, 0x5632466c
je 0x40824e
cmp eax, 0x57697dd3
jne 0x4071e0
movzx eax, byte [esi + 0x48]
mov edi, dword [esp + 0x138]
lea ecx, [edi + 1]
mov dword [esi + 0x30], ecx
mov byte [edi], al
mov eax, 0xd573a475
jmp 0x4071e0
cmp eax, 0x2437bb00
je 0x40829f
cmp eax, 0x2512cc51
jne 0x4071e0
mov ecx, dword [esi + 0x44]
mov eax, 0x6f84fc0d
mov dword [esp + 0x110], ecx
cmp ecx, 8
jae 0x4071e0
mov eax, 0xf817c46e
jmp 0x4071e0
cmp eax, 0x600aaabf
je 0x4082b1
cmp eax, 0x61121a36
jne 0x4071e0
mov eax, 0x214134f
jmp 0x408911
cmp eax, 0xd177482e
je 0x4082f7
cmp eax, 0xd1d6ff06
jne 0x4071e0
inc word [esi + 0x8636]
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x16c], 0x12
mov eax, dword [esp + 8]
add al, 0xf5
jmp 0x408499
cmp eax, 0x8f8c64e6
je 0x408354
cmp eax, 0x8fe399f5
jne 0x4071e0
mov eax, 0x19b13f1f
cmp dword [esp + 8], 0xb
jb 0x4071e0
mov eax, 0xa8662df5
jmp 0x4071e0
cmp eax, 0x973826b1
je 0x408371
cmp eax, 0x9e993263
jne 0x4071e0
mov eax, 0x37576f1
cmp dword [esp + 8], 3
jb 0x4071e0
mov eax, 0xbd8128d
jmp 0x4071e0
cmp eax, 0xf6c5c4d9
je 0x4083b8
cmp eax, 0xf817c46e
jne 0x4071e0
mov eax, 0xe416d71c
cmp dword [esp + 0xc0], 0x10
jae 0x407e91
mov eax, 0xb026f677
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xe4], ecx
jmp 0x4071e0
cmp eax, 0xaa50dac6
je 0x4083f8
cmp eax, 0xab140b4a
jne 0x4071e0
mov eax, 0xeef52723
mov ecx, dword [esp + 0xf8]
cmp dword [esp + 0x58], ecx
jb 0x407ed1
mov eax, 0xe6ab7758
mov ecx, dword [esp + 0x58]
mov dword [esp + 0xf4], ecx
jmp 0x4071e0
cmp eax, 0xea96d589
je 0x40844b
cmp eax, 0xeba6b0f4
jne 0x4071e0
mov ecx, dword [esp + 0x38]
mov eax, ecx
cmp ecx, 4
jge 0x407f07
mov eax, 3
lea ecx, [eax + 1]
mov dword [esp + 0x124], ecx
add eax, 0xfffffffd
mov ecx, dword [esi + 0x44]
shl eax, cl
or dword [esi + 0x48], eax
add ecx, 4
mov dword [esi + 0x44], ecx
mov eax, 0x20574351
jmp 0x4071e0
cmp eax, 0x285952f7
je 0x408505
cmp eax, 0x2b1ff08a
jne 0x4071e0
mov ecx, dword [esp + 0x10c]
lea eax, [ecx + 1]
mov dword [esp + 0xb8], eax
mov byte [esp + ecx + 0x16c], bl
mov eax, 0xf6290e17
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x94], ecx
jmp 0x4071e0
cmp eax, 0x6bd87098
je 0x408539
cmp eax, 0x6c120e98
jne 0x4071e0
cmp dword [esi + 0x44], 8
mov eax, 0x96fc9d3a
jae 0x4071e0
mov eax, 0x2437bb00
jmp 0x4071e0
cmp eax, 0x35f29b67
je 0x40856d
cmp eax, 0x369cc9c4
jne 0x4071e0
mov ecx, esi
mov edx, 2
push 0
push 7
push 0x13
call fcn.004089f0
add esp, 0xc
mov ecx, dword [esi + 0x44]
mov eax, 2
shl eax, cl
or dword [esi + 0x48], eax
add ecx, 2
mov dword [esi + 0x44], ecx
mov eax, 0xb72dc357
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0xf8], ecx
jmp 0x4071e0
cmp eax, 0x73570513
je 0x4085a4
cmp eax, 0x7675f329
jne 0x4071e0
mov eax, dword [esp + 0xd8]
inc eax
mov dword [esp + 0x44], eax
mov eax, 0xea26d50c
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov bh, byte [esp + 3]
jmp 0x4071e0
cmp eax, 0xd7c5586c
je 0x4085e0
cmp eax, 0xdb91f407
jne 0x4071e0
movzx eax, byte [esi + 0x48]
mov edi, dword [esp + 0x128]
lea ecx, [edi + 1]
mov dword [esi + 0x30], ecx
mov byte [edi], al
mov eax, 0x507c69d2
jmp 0x4071e0
cmp eax, 0xe416d71c
je 0x408605
cmp eax, 0xe4686def
jne 0x4071e0
mov dword [esp + 0xb0], 0
mov eax, 0xaa50dac6
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x90], ecx
jmp 0x4071e0
cmp eax, 0xb70b6f59
je 0x40869a
cmp eax, 0xb72dc357
jne 0x4071e0
mov ecx, dword [esi + 0x44]
mov eax, 0xf6c5c4d9
mov dword [esp + 0x118], ecx
cmp ecx, 8
jae 0x4071e0
mov eax, 0xea96d589
jmp 0x4071e0
cmp eax, 0xc10f388e
je 0x4086c6
cmp eax, 0xc3c484e8
jne 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0xdb91f407
mov dword [esp + 0x128], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0x507c69d2
jmp 0x4071e0
cmp eax, 0xe790af6b
jne 0x4089d8
mov eax, dword [esp + 0x154]
lea ecx, [eax + 1]
mov dword [esp + 0x98], ecx
mov byte [esp + eax + 0x16c], bl
mov eax, 0x93143552
mov ecx, dword [esp + 0x168]
mov dword [esp + 0x84], ecx
jmp 0x4071e0
mov eax, dword [esp + 0x140]
lea ecx, [eax + 1]
mov dword [esp + 0xa0], ecx
mov byte [esp + eax + 0x16c], 0
mov eax, 0xd0050e51
mov ebp, dword [esp + 0x164]
jmp 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0x8f8c64e6
mov dword [esp + 0x11c], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0x47c2aa81
jmp 0x4071e0
mov eax, 0x67d64e0f
cmp dword [esp + 8], 0xb
jb 0x4071e0
mov eax, 0xd1d6ff06
jmp 0x4071e0
mov eax, dword [esp + 0xd8]
movzx ecx, byte [esp + eax + 0x2ac]
mov eax, 0x710a43ac
mov byte [esp + 3], cl
test cl, cl
je 0x4071e0
mov eax, 0xb70b6f59
jmp 0x4071e0
mov eax, 0xc10f388e
cmp dword [esp + 4], 3
jb 0x4071e0
mov eax, 0xf242daec
jmp 0x4071e0
mov eax, 0xeef594a5
cmp dword [esp + 4], 3
jb 0x4071e0
mov eax, 0x600aaabf
jmp 0x4071e0
mov ecx, dword [esp + 0xa4]
mov eax, 0xe7c495fd
sub ecx, 1
mov dword [esp + 0x14c], ecx
jb 0x408234
mov eax, 0xc57f170f
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0x104], ecx
jmp 0x4071e0
mov eax, dword [esp + 0x28]
cmp byte [eax + esi + 0x9031], 0
mov eax, 0x204577f2
je 0x4071e0
mov eax, 0xa897c6d1
jmp 0x4071e0
mov eax, dword [esp + 0x28]
dec eax
mov dword [esp + 0x4c], eax
mov eax, 0xa6ecbca7
jmp 0x4071e0
movzx eax, byte [esi + 0x48]
mov edi, dword [esp + 0x130]
lea ecx, [edi + 1]
mov dword [esi + 0x30], ecx
mov byte [edi], al
mov eax, 0x17299989
jmp 0x4071e0
mov dword [esp + 0x60], 0x12
mov eax, 0x37f23198
jmp 0x4071e0
inc word [esi + 0x8632]
mov ecx, dword [esp + 0x14]
mov byte [esp + ecx + 0x16c], 0x10
mov eax, dword [esp + 4]
add al, 0xfd
lea edx, [ecx + 2]
mov dword [esp + 0xbc], edx
mov byte [esp + ecx + 0x16d], al
mov eax, 0x4d39b64d
jmp 0x4071e0
mov dword [esp + 0x58], 0
mov eax, 0xab140b4a
jmp 0x4071e0
cmp dword [esi + 0x44], 8
mov eax, 0x3f33eb00
jae 0x4071e0
mov eax, 0x73570513
jmp 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0xc9350bd3
mov dword [esp + 0x134], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0xdc626b62
jmp 0x4071e0
mov ecx, dword [esi + 0x44]
mov eax, 0x8c0fa4a7
mov dword [esp + 0x114], ecx
cmp ecx, 8
jae 0x4071e0
mov eax, 0x3d6e8ea6
jmp 0x4071e0
movzx eax, byte [esi + 0x48]
mov edx, dword [esp + 0x11c]
lea ecx, [edx + 1]
mov dword [esi + 0x30], ecx
mov byte [edx], al
mov eax, 0x47c2aa81
jmp 0x4071e0
mov eax, dword [esp + 0x30]
dec eax
mov dword [esp + 0x34], eax
mov eax, 0xe723b8a
jmp 0x4071e0
inc word [esi + 0x8632]
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x16c], 0x10
mov eax, dword [esp + 4]
add al, 0xfd
lea ecx, [edx + 2]
mov dword [esp + 0xdc], ecx
mov byte [esp + edx + 0x16d], al
mov eax, 0x952e9c4a
jmp 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0x57697dd3
mov dword [esp + 0x138], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0xd573a475
jmp 0x4071e0
inc word [esi + 0x8636]
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x16c], 0x12
mov eax, dword [esp + 8]
add al, 0xf5
jmp 0x408802
mov eax, 0x6a0650aa
cmp byte [esp + 3], bl
je 0x408408
mov eax, 0x1fe7f684
movzx ecx, byte [esp + 3]
mov dword [esp + 0x150], ecx
movzx ecx, bl
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x14], ecx
jmp 0x4071e0
mov dword [esp + 0x4c], 0x1e
mov eax, 0xa6ecbca7
jmp 0x4071e0
mov eax, dword [esp + 0x30]
add eax, 0xfffffeff
mov ecx, dword [esp + 0x118]
shl eax, cl
or dword [esi + 0x48], eax
add dword [esi + 0x44], 5
mov eax, 0x9689ee78
jmp 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0x2512cc51
jmp 0x4071e0
inc word [esi + 0x8634]
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x16c], 0x11
mov eax, dword [esp + 8]
add al, 0xfd
lea ecx, [edx + 2]
mov dword [esp + 0x54], ecx
mov byte [esp + edx + 0x16d], al
mov eax, 0xa2cedbf3
jmp 0x4071e0
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xa8]
add word [esi + eax*2 + 0x8612], dx
mov eax, 0x15fdf18d
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xa4], edx
jmp 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0xedb1a067
mov dword [esp + 0x120], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0x27688a31
jmp 0x4071e0
mov ecx, dword [esp + 0xe0]
mov eax, 0xa2cedbf3
sub ecx, 1
mov dword [esp + 0x13c], ecx
jb 0x408522
mov eax, 0xe01a371d
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x54], ecx
mov dword [esp + 0xfc], ecx
jmp 0x4071e0
mov ecx, dword [esp + 0x8c]
mov eax, 0xe4686def
sub ecx, 1
mov dword [esp + 0x15c], ecx
jb 0x408556
mov eax, 0xfaa2e126
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x40], ecx
jmp 0x4071e0
inc word [esi + 0x8632]
mov edx, dword [esp + 0x14]
mov byte [esp + edx + 0x16c], 0x10
mov eax, dword [esp + 0xa8]
add al, 0xfd
lea ecx, [edx + 2]
mov dword [esp + 0xc4], ecx
mov byte [esp + edx + 0x16d], al
mov eax, 0xe7c495fd
jmp 0x4071e0
mov eax, 0xb026f677
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xe4], ecx
jmp 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0xb72dc357
jmp 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0x9689ee78
jmp 0x4071e0
mov dword [esp + 0x1c], 0
mov eax, 0x7675f329
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x148]
mov dword [esp + 0x10], ecx
jmp 0x4071e0
mov edi, dword [esp + 0xb4]
movzx eax, byte [esp + edi + 0x16c]
mov edx, dword [esp + 0xc0]
movsx edx, byte [edx + 0x442bc4]
mov ecx, dword [esp + 0x110]
shl eax, cl
or dword [esi + 0x48], eax
lea eax, [edi + 1]
mov dword [esp + 0x108], eax
add dword [esi + 0x44], edx
mov eax, 0xd177482e
jmp 0x4071e0
mov eax, 0xab140b4a
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x58], ecx
jmp 0x4071e0
mov eax, dword [esp + 0x150]
inc word [esi + eax*2 + 0x8612]
mov ecx, dword [esp + 0x70]
lea eax, [ecx + 1]
mov dword [esp + 0x20], eax
movzx eax, byte [esp + 3]
mov byte [esp + ecx + 0x16c], al
mov eax, 0x7675f329
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
jmp 0x4071e0
mov eax, 0xaa50dac6
cmp dword [esp + 8], 0
je 0x4086ab
mov eax, 0x5b2da287
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0xb0], ecx
jmp 0x4071e0
movzx eax, bl
mov ecx, dword [esp + 4]
add word [esi + eax*2 + 0x8612], cx
mov eax, 0xd619b0cc
mov edx, dword [esp + 0xc]
mov dword [esp + 0xd4], edx
mov dword [esp + 0xc8], ecx
jmp 0x4071e0
mov ecx, dword [esp + 0x100]
lea eax, [ecx + 1]
mov dword [esp + 0xd4], eax
mov byte [esp + ecx + 0x16c], bl
mov eax, 0xd619b0cc
mov ecx, dword [esp + 0x144]
mov dword [esp + 0xc8], ecx
jmp 0x4071e0
mov eax, 0xbf25c390
cmp dword [esp + 0x60], 0
jns 0x408732
mov eax, 0xeba6b0f4
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x38], ecx
jmp 0x4071e0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 8]
add word [eax], cx
mov eax, 0x6bd87098
mov edx, dword [esp + 0xc]
mov dword [esp + 0xac], edx
mov dword [esp + 0x8c], ecx
jmp 0x4071e0
shr dword [esi + 0x48], 8
add dword [esi + 0x44], 0xfffffff8
mov eax, 0xd177482e
jmp 0x4071e0
cmp dword [esi + 0x44], 8
mov eax, 0x1f3099b5
jae 0x4071e0
mov eax, 0x5ba4eb8a
jmp 0x4071e0
mov eax, 0x8d04d904
jmp 0x4071e0
inc word [esi + 0x8632]
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x16c], 0x10
mov eax, dword [esp + 4]
add al, 0xfd
lea ecx, [edx + 2]
mov dword [esp + 0x6c], ecx
mov byte [esp + edx + 0x16d], al
mov eax, 0x82030a1f
jmp 0x4071e0
mov dword [esp + 0x74], 0
mov eax, 0xbb64fb12
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x70], ecx
jmp 0x4071e0
inc word [esi + 0x8634]
mov edx, dword [esp + 0xc]
mov byte [esp + edx + 0x16c], 0x11
mov eax, dword [esp + 8]
add al, 0xfd
lea ecx, [edx + 2]
mov dword [esp + 0x40], ecx
mov byte [esp + edx + 0x16d], al
mov eax, 0xe4686def
jmp 0x4071e0
mov eax, 0x601cb55
cmp dword [esp + 8], 3
jb 0x4071e0
mov eax, 0x8fe399f5
jmp 0x4071e0
mov ecx, dword [esi + 0x30]
mov eax, 0x5cee87fb
mov dword [esp + 0xf0], ecx
cmp ecx, dword [esi + 0x34]
jb 0x4071e0
mov eax, 0x4537f51d
jmp 0x4071e0
mov eax, dword [esp + 0x68]
inc eax
mov dword [esp + 0x5c], eax
mov eax, 0x9595a545
jmp 0x4071e0
mov ecx, dword [esp + 0x104]
lea eax, [ecx + 1]
mov dword [esp + 0xcc], eax
mov byte [esp + ecx + 0x16c], bl
mov eax, 0x15fdf18d
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0xa4], ecx
jmp 0x4071e0
mov eax, dword [esp + 0x38]
dec eax
mov dword [esp + 0x60], eax
mov eax, 0x37f23198
jmp 0x4071e0
mov dword [esp + 0x9c], 0
mov eax, 0x5fe3b964
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x88], ecx
jmp 0x4071e0
mov ecx, dword [esp + 0x84]
mov eax, 0x82030a1f
sub ecx, 1
mov dword [esp + 0x168], ecx
jb 0x4088e9
mov eax, 0xe790af6b
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x6c], ecx
jmp 0x4071e0
mov eax, 0x369cc9c4
cmp dword [esp + 8], 0
je 0x408911
mov eax, 0x9e993263
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x2c], ecx
jmp 0x4071e0
mov eax, 0x369cc9c4
mov ecx, dword [esp + 0xdc]
mov dword [esp + 0x2c], ecx
jmp 0x4071e0
movzx eax, byte [esi + 0x48]
mov edx, dword [esp + 0x120]
lea ecx, [edx + 1]
mov dword [esi + 0x30], ecx
mov byte [edx], al
mov eax, 0x27688a31
jmp 0x4071e0
mov eax, dword [esp + 0x68]
movzx eax, byte [eax + 0x441dea]
movzx eax, byte [esi + eax + 0x9152]
mov ecx, dword [esi + 0x44]
shl eax, cl
or dword [esi + 0x48], eax
add ecx, 3
mov dword [esi + 0x44], ecx
mov eax, 0xf99812d2
jmp 0x4071e0
mov edi, ebp
mov ebp, dword [esp + 0xf4]
movzx edx, byte [esp + ebp + 0x16c]
movzx eax, word [esi + edx*2 + 0x8cd2]
mov ecx, dword [esi + 0x44]
shl eax, cl
mov dword [esp + 0xc0], edx
movzx edx, byte [esi + edx + 0x9152]
or dword [esi + 0x48], eax
add edx, ecx
lea eax, [ebp + 1]
mov ebp, edi
mov dword [esp + 0xb4], eax
mov dword [esi + 0x44], edx
mov eax, 0x2512cc51
jmp 0x4071e0
mov eax, 0x369cc9c4
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x2c], ecx
jmp 0x4071e0
cmp eax, 0xe6ab7758
jne 0x4071e0
add esp, 0x3ec
pop esi
pop edi
pop ebx
pop ebp
ret