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

Disassembly:
push edi
push esi
sub esp, 0x5b0
mov ax, word [0x48f89a]
mov cx, ax
and ecx, 0x5db0
mov ax, cx
mov word [0x48f89a], ax
lea ecx, [esp + 0x570]
call fcn.00420600
mov ecx, dword [0x49eaa4]
sar ecx, 1
mov edx, dword [0x4989ac]
and edx, ecx
mov dword [0x4989ac], edx
mov si, word [0x4910d8]
movsx ecx, si
and ecx, 0x43073d82
mov edx, dword [0x49b780]
or edx, ecx
mov dword [0x49b780], edx
mov si, word [0x492f78]
mov cx, si
and ecx, 0xdae9
mov si, cx
mov word [0x492f78], si
mov ecx, dword [0x496d68]
add ecx, 0x4649efa4
mov dword [0x496d68], ecx
mov dword [esp + 0x110], 0
mov word [0x4928e0], 0xde40
mov dword [0x4a722c], 0x94
mov si, word [0x48cc46]
mov cx, si
dec ecx
mov si, cx
mov word [0x48cc46], si
movsx ecx, si
mov edx, 0x99914acc
sub edx, ecx
mov ecx, dword [0x4a0524]
imul ecx, ecx, 0xefbeed1b
or ecx, 0xdc152f0b
cmp edx, ecx
mov dword [esp + 0x10c], eax
jl 0x40e672
mov eax, dword [0x496938]
or eax, 0x2ad76965
mov ecx, dword [0x49a070]
and ecx, eax
mov dword [0x49a070], ecx
mov eax, dword [0x48c000]
mov ecx, esp
mov dword [ecx], 0x4a722c
call eax
sub esp, 4
mov ecx, dword [0x49fbc0]
imul ecx, ecx, 0xfeb8dfb3
mov dword [0x49fbc0], ecx
mov dword [esp + 0x108], eax
call fcn.00431080
mov dword [0x4a7b78], eax
mov eax, dword [0x49df78]
sar eax, 4
cmp eax, 0x1cc20045
je 0x40e6d2
mov ax, word [0x48dd92]
mov cx, ax
add ecx, 0x8677fd51
mov ax, cx
mov word [0x48dd92], ax
call fcn.00432a50
mov dword [0x4a7b7c], eax
mov cx, word [0x494e14]
movsx eax, cx
mov edx, dword [0x498688]
mov esi, 0x3054aadb
sub esi, edx
or eax, esi
mov edx, dword [0x49dc4c]
sub edx, eax
mov dword [0x49dc4c], edx
mov eax, dword [0x4a7b78]
cmp eax, 0
je 0x40e91d
mov eax, 0xcda5803d
mov ecx, dword [0x497428]
mov edx, ecx
inc edx
mov dword [0x497428], edx
add ecx, 0x5d8779c4
mov dword [0x49c30c], ecx
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx], edx
mov dword [esp + 0x104], eax
mov dword [esp + 0x100], edx
call fcn.004394b0
mov dword [esp + 0x11c], eax
mov eax, dword [0x4952d4]
xor eax, 0xe136
mov si, word [0x4945ae]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x4945ae], si
mov eax, dword [esp + 0x11c]
mov byte [esp + eax + 0x122], 0x5c
mov eax, dword [0x49d798]
imul eax, eax, 0x86a50266
mov dword [0x49d798], eax
mov eax, dword [esp + 0x11c]
inc eax
mov dword [esp + 0x11c], eax
mov word [0x4926e2], 0xda2d
mov eax, dword [esp + 0x11c]
mov byte [esp + eax + 0x122], 0
mov si, word [0x491e46]
mov ax, si
or eax, 0xfce7
mov si, word [0x4926a6]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x4926a6], si
mov eax, dword [0x4a7bb8]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x100]
mov dword [ecx], eax
call fcn.00455ac0
mov ecx, dword [0x4a26d8]
xor ecx, 0x4f5743da
mov dword [0x4a26d8], ecx
mov ecx, dword [0x48c048]
mov edx, esp
mov edi, dword [esp + 0x100]
mov dword [edx], edi
mov dword [edx + 4], 0
mov dword [esp + 0xfc], eax
call ecx
sub esp, 8
mov ecx, dword [0x496af8]
or ecx, 0xcd8c518c
mov dword [0x496af8], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4444
mov dword [esp + 0xf8], eax
call fcn.00428730
mov dword [esp + 0x5ac], eax
mov eax, dword [0x498850]
imul eax, eax, 0x353e8efe
mov dword [0x498850], eax
mov eax, dword [esp + 0x5ac]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x100]
mov dword [ecx], eax
call fcn.00455ac0
mov ecx, dword [0x4973e0]
mov edx, dword [0x498fe0]
or ecx, edx
or ecx, 0xdd3f79d
mov dword [0x498fe0], ecx
mov ecx, dword [esp + 0x5ac]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xf4], eax
call fcn.00419110
mov eax, dword [0x495524]
mov ecx, dword [esp + 0x104]
cmp ecx, eax
jl 0x40e918
mov eax, 0x74351dde
mov cx, word [0x48fd6a]
movsx edx, cx
sub edx, 0x8e2a55a4
or edx, 0xe6e34dc7
cmp eax, edx
jge 0x40e913
mov eax, dword [0x4a0c28]
shl eax, 5
add eax, 0x980a38ea
mov cx, ax
mov word [0x48ece2], cx
jmp 0x40e918
jmp 0x40e986
mov eax, 0x43753576
mov ecx, dword [0x4a3e60]
xor ecx, 0x22977b40
mov dword [0x4a3e60], ecx
mov byte [esp + 0x122], 0
mov ecx, dword [0x4a1230]
mov edx, ecx
inc edx
mov dword [0x4a1230], edx
mov si, word [0x492a00]
movsx edx, si
sub eax, edx
cmp ecx, eax
jle 0x40e981
mov eax, dword [0x4a35f0]
mov ecx, eax
inc ecx
mov dword [0x4a35f0], ecx
xor eax, 0x7c4c6913
mov ecx, dword [0x495b20]
imul ecx, eax
mov dword [0x495b20], ecx
jmp 0x40e986
mov eax, dword [0x497ec8]
xor eax, 0x2d8dbabd
mov dword [0x497ec8], eax
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x3ba
call fcn.00428730
mov dword [esp + 0x5a8], eax
mov eax, dword [0x49ca94]
mov ecx, eax
inc ecx
mov dword [0x49ca94], ecx
add eax, 0x5d958f9a
xor eax, 0x3c75d1ca
mov ecx, dword [0x4a00e0]
dec ecx
mov dword [0x4a00e0], ecx
mov edx, dword [0x49e178]
inc edx
mov dword [0x49e178], edx
sub ecx, edx
cmp eax, ecx
jle 0x40ea16
mov eax, dword [0x49e8c8]
mov ecx, eax
dec ecx
mov dword [0x49e8c8], ecx
imul eax, eax, 0xc61d719d
mov dx, word [0x493b68]
mov cx, dx
and ecx, eax
mov dx, cx
mov word [0x493b68], dx
lea eax, [esp + 0x570]
lea ecx, [esp + 0x122]
mov edx, dword [esp + 0x5a8]
mov esi, esp
mov dword [esi], edx
lea edx, [esp + 0x570]
mov dword [esp + 0xf0], ecx
mov ecx, edx
mov dword [esp + 0xec], eax
call fcn.0041e480
sub esp, 4
mov dword [0x4a2868], 0xc5eb467
mov ecx, dword [esp + 0x5a8]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xe8], eax
call fcn.00419110
mov eax, dword [0x4a1788]
xor eax, 0x8adbfc7c
mov dword [0x4a1788], eax
mov eax, dword [esp + 0xec]
mov ecx, eax
call fcn.0044fff0
lea ecx, [esp + 0x570]
mov dword [esp + 0xe4], eax
call fcn.0043b040
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0xe0], ecx
call fcn.004253c0
cmp eax, 0
je 0x40ec40
mov eax, dword [0x496090]
mov ecx, dword [0x49ca34]
mov edx, ecx
dec edx
mov dword [0x49ca34], edx
and eax, ecx
mov si, word [0x48cbee]
mov cx, si
xor ecx, eax
mov si, cx
mov word [0x48cbee], si
mov dword [esp + 0x110], 1
mov si, word [0x48f29c]
mov ax, si
dec eax
mov di, ax
mov word [0x48f29c], di
movsx eax, si
and eax, 0xf6938221
mov si, word [0x493516]
movsx ecx, si
not ecx
mov si, word [0x48db28]
movsx edx, si
sar edx, 0xa
and ecx, edx
or ecx, 0x6b62e1bf
cmp eax, ecx
jge 0x40eb7b
mov ax, word [0x48dad4]
mov cx, ax
imul ecx, ecx, 0x32284ab9
mov ax, cx
mov word [0x48dad4], ax
jmp 0x40eb8c
mov ax, word [0x492d6e]
movsx ecx, ax
not ecx
mov dword [0x49a29c], ecx
mov eax, dword [0x48bfd4]
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx], edx
mov dword [esp + 0xdc], edx
call eax
sub esp, 4
mov si, word [0x491d78]
movsx ecx, si
shr ecx, 3
or ecx, 0x9b6
mov si, word [0x4916fe]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x4916fe], si
mov ecx, dword [esp + 0x11c]
mov byte [esp + ecx + 0x122], 0
mov si, word [0x48face]
mov cx, si
add ecx, 0xcc850941
mov si, cx
mov word [0x48face], si
mov ecx, dword [0x48c04c]
mov edx, esp
mov edi, dword [esp + 0xdc]
mov dword [edx], edi
mov dword [esp + 0xd8], eax
call ecx
sub esp, 4
mov ecx, dword [0x497cd4]
imul ecx, ecx, 0x4db24c34
mov si, word [0x48e152]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x48e152], si
mov dword [esp + 0xd4], eax
mov eax, 0xd7391e9e
mov cx, word [0x490aa8]
mov dx, cx
and edx, 0x5ff5
mov cx, dx
mov word [0x490aa8], cx
mov edx, esp
lea esi, [esp + 0x122]
mov dword [edx], esi
mov dword [esp + 0xd0], eax
mov dword [esp + 0xcc], esi
call fcn.004394b0
mov cx, word [0x49449c]
mov dx, cx
inc edx
mov cx, dx
mov word [0x49449c], cx
movsx edx, cx
mov esi, dword [0x49efe8]
xor edx, esi
xor edx, 0x793d7999
mov dword [0x49efe8], edx
mov byte [esp + 0x125], 0
mov edx, dword [0x499354]
shl edx, 0xa
add edx, 0x6574d115
mov cx, word [0x494cf8]
mov si, cx
sub esi, edx
mov cx, si
mov word [0x494cf8], cx
mov edx, dword [0x4a7bb8]
mov esi, esp
mov dword [esi + 4], edx
mov edx, dword [esp + 0xcc]
mov dword [esi], edx
mov dword [esp + 0xc8], eax
call fcn.00455ac0
mov edx, dword [0x495a80]
mov esi, edx
inc esi
mov dword [0x495a80], esi
mov esi, dword [0x4981ec]
not esi
imul edx, esi
mov esi, 0x83c71131
sub esi, edx
mov edx, dword [0x49b934]
and edx, esi
mov dword [0x49b934], edx
mov edx, dword [0x48c048]
mov esi, esp
mov edi, dword [esp + 0xcc]
mov dword [esi], edi
mov dword [esi + 4], 0
mov dword [esp + 0xc4], eax
call edx
sub esp, 8
mov edx, dword [0x49c068]
or edx, 0xf1e4cc1a
mov dword [0x49c068], edx
mov edx, esp
mov esi, dword [esp + 0xcc]
mov dword [edx + 4], esi
mov dword [edx], 0x4a7438
mov dword [esp + 0xc0], eax
call fcn.00455ab0
mov edx, dword [0x4a0590]
add edx, 0xcc47d13f
mov esi, dword [esp + 0xd0]
cmp esi, edx
mov dword [esp + 0xbc], eax
jl 0x40edaa
mov eax, dword [0x49bc64]
and eax, 0xce36baff
mov dword [0x49bc64], eax
cmp dword [esp + 0x110], 0
jne 0x40ee35
mov eax, 0x7ad4289b
mov ecx, dword [0x4966d4]
dec ecx
mov dword [0x4966d4], ecx
mov dx, word [0x4900ee]
mov si, dx
dec esi
mov di, si
mov word [0x4900ee], di
movsx esi, dx
add esi, 0x9131f25e
xor ecx, esi
cmp eax, ecx
jg 0x40ee1b
mov eax, 0x84284a6a
mov ecx, dword [0x498f70]
inc ecx
mov dword [0x498f70], ecx
cmp eax, ecx
jge 0x40ee16
mov dword [0x4a0688], 0xf2bdef56
jmp 0x40ee1b
mov dword [0x4a7b74], 0
mov eax, dword [0x49cadc]
imul eax, eax, 0xb7506f0b
mov dword [0x49cadc], eax
mov eax, dword [0x4a4068]
not eax
imul eax, eax, 0x1a66f393
mov cx, word [0x493a2e]
movsx edx, cx
xor edx, 0xffffffff
cmp eax, edx
jne 0x40ee6f
mov ax, word [0x494eac]
mov cx, ax
and ecx, 0x3d34
mov ax, cx
mov word [0x494eac], ax
mov eax, 0xf6d1efbf
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xb4], edx
call fcn.0040e1a0
mov dword [esp + 0x11c], eax
mov si, word [0x48fe48]
movsx eax, si
mov ecx, dword [0x4a03fc]
and eax, ecx
mov ecx, dword [0x4a0660]
and ecx, eax
mov dword [0x4a0660], ecx
mov eax, dword [0x48c048]
mov ecx, esp
mov edx, dword [esp + 0xb4]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x4a069c]
xor ecx, 0x38d18115
mov dword [0x4a069c], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4444
mov dword [esp + 0xb0], eax
call fcn.00428730
mov dword [esp + 0x5a4], eax
mov si, word [0x48d534]
movsx eax, si
xor eax, 0xb2afecff
mov ecx, dword [0x4988ec]
or ecx, eax
mov dword [0x4988ec], ecx
mov eax, dword [esp + 0x5a4]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [ecx], eax
call fcn.00455ac0
mov ecx, dword [0x49893c]
mov si, word [0x490ae0]
movsx edx, si
and edx, 0xb56c8b83
xor ecx, edx
mov edx, dword [esp + 0xb8]
cmp edx, ecx
mov dword [esp + 0xac], eax
jg 0x40ef85
mov eax, dword [0x49e090]
mov ecx, dword [0x49bbd0]
xor eax, ecx
xor eax, 0x6728c3b0
mov dword [0x49bbd0], eax
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x3ba
call fcn.00428730
mov dword [esp + 0x5a0], eax
mov eax, dword [0x49c788]
sar eax, 6
or eax, 0x221a9184
mov ecx, dword [0x4a55d0]
shl ecx, 1
add ecx, 0x8249716e
cmp eax, ecx
jl 0x40efec
mov ax, word [0x4937ee]
movsx ecx, ax
mov edx, dword [0x49e110]
mov esi, edx
inc esi
mov dword [0x49e110], esi
or ecx, edx
mov edx, dword [0x4a3fd8]
xor edx, ecx
mov dword [0x4a3fd8], edx
lea eax, [esp + 0x570]
lea ecx, [esp + 0x122]
mov edx, dword [esp + 0x5a4]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 0x1f
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], ecx
call fcn.00419110
mov eax, dword [0x4a398c]
imul eax, eax, 0xd5896b6e
mov ecx, dword [0x49ac50]
and ecx, eax
mov dword [0x49ac50], ecx
mov eax, dword [esp + 0x5a0]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x570]
call fcn.0041e480
sub esp, 4
mov ecx, dword [0x496944]
and ecx, 0xb5a7010b
mov dword [0x496944], ecx
mov ecx, dword [esp + 0x5a0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xa0], eax
call fcn.00419110
mov eax, dword [0x4980c8]
and eax, 0xafd202cb
mov dword [0x4980c8], eax
mov eax, dword [esp + 0xa8]
mov ecx, eax
call fcn.0044fff0
lea ecx, [esp + 0x570]
mov dword [esp + 0x9c], eax
call fcn.0043b040
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x98], ecx
call fcn.004253c0
cmp eax, 0
jne 0x40fd1e
mov eax, 0x1aefb97f
mov cx, word [0x494cc4]
movsx edx, cx
cmp eax, edx
jne 0x40f11c
mov ax, word [0x4922ce]
mov cx, ax
add ecx, 0x6089493d
mov ax, cx
mov word [0x4922ce], ax
cmp dword [0x4a7230], 6
jb 0x40f25e
mov eax, 0x3e8ce0f0
mov ecx, dword [0x49e778]
add ecx, 0x82a7ebac
mov dword [0x49e778], ecx
mov ecx, esp
mov dword [ecx + 4], 0x12
mov dword [ecx], 0x3087
mov dword [esp + 0x94], eax
call fcn.00428730
mov dword [esp + 0x59c], eax
mov eax, dword [0x4980f8]
inc eax
mov dword [0x4980f8], eax
xor eax, 0xff5d
mov dx, word [0x48ecb8]
mov cx, dx
imul ecx, eax
mov dx, cx
mov word [0x48ecb8], dx
mov eax, dword [esp + 0x59c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x122]
mov dword [ecx], eax
mov dword [ecx + 8], 0x4a72c0
call fcn.00455cab
mov ecx, dword [0x496c6c]
sar ecx, 9
mov esi, dword [0x49d87c]
mov edi, esi
dec edi
mov dword [0x49d87c], edi
sub ecx, esi
add ecx, 0x2123c4bb
mov esi, dword [esp + 0x94]
cmp esi, ecx
mov dword [esp + 0x90], eax
jne 0x40f212
mov ax, word [0x494474]
mov cx, ax
imul ecx, ecx, 0x1da4913b
mov edx, dword [0x4a0568]
dec edx
mov dword [0x4a0568], edx
sub ecx, edx
mov ax, word [0x4905f4]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x4905f4], ax
mov eax, dword [esp + 0x59c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x12
call fcn.00419110
mov dx, word [0x493118]
movsx eax, dx
mov ecx, dword [0x49db28]
cmp eax, ecx
je 0x40f259
mov ax, word [0x492f0c]
mov cx, ax
imul ecx, ecx, 0xffef3bbf
mov ax, cx
mov word [0x492f0c], ax
jmp 0x40f3b9
mov eax, 0x4964612d
mov ecx, dword [0x4968a4]
add ecx, 0xbb683894
cmp eax, ecx
jle 0x40f297
mov eax, dword [0x49608c]
dec eax
mov dword [0x49608c], eax
imul eax, eax, 0xf3ede9cd
xor eax, 0xc2c8700e
mov dword [0x49b4cc], eax
jmp 0x40f301
mov ax, word [0x491e1a]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x491e1a], ax
movsx ecx, ax
add ecx, 0xed6cb233
and ecx, 0xd943e42b
mov edx, dword [0x499250]
xor edx, 0xffffffff
imul edx, edx, 0xa859b3ae
cmp ecx, edx
jge 0x40f2fc
mov eax, 0x31ed1c6d
mov ecx, dword [0x4a5cec]
mov edx, ecx
dec edx
mov dword [0x4a5cec], edx
or ecx, 0x89eca88c
cmp eax, ecx
jge 0x40f2f7
jmp 0x40f2f7
jmp 0x40f2fc
jmp 0x40f301
mov eax, esp
mov dword [eax + 4], 0x24
mov dword [eax], 0xfe8
call fcn.00428730
mov dword [esp + 0x598], eax
mov cx, word [0x493c66]
mov ax, cx
dec eax
mov cx, ax
mov word [0x493c66], cx
movsx eax, cx
add eax, 0xd35a5bfa
mov edx, dword [0x49f488]
imul edx, eax
mov dword [0x49f488], edx
mov eax, dword [esp + 0x598]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x122]
mov dword [edx], eax
mov dword [edx + 8], 0x4a72c0
call fcn.00455cab
mov edx, dword [0x4a56dc]
or edx, 0xbffbffaa
mov dword [0x4a56dc], edx
mov edx, dword [esp + 0x598]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 0x24
mov dword [esp + 0x8c], eax
call fcn.00419110
mov cx, word [0x4905d0]
movsx eax, cx
sar eax, 7
and eax, 0xd02e8de5
mov edx, dword [0x4a70a4]
xor edx, eax
mov dword [0x4a70a4], edx
mov eax, dword [0x4a5ff8]
add eax, 0x2fd38132
mov dword [0x4a5ff8], eax
mov byte [esp + 0x56f], 0
mov cx, word [0x48db06]
mov ax, cx
and eax, 0x1b09
mov cx, ax
mov word [0x48db06], cx
mov eax, dword [0x4a7bb8]
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0x122]
mov dword [edx], eax
mov dword [esp + 0x88], eax
call fcn.00455ac0
mov edx, dword [0x49811c]
or edx, 0x42804840
mov dword [0x49811c], edx
mov edx, dword [0x48c048]
mov esi, esp
mov edi, dword [esp + 0x88]
mov dword [esi], edi
mov dword [esi + 4], 0
mov dword [esp + 0x84], eax
call edx
sub esp, 8
mov cx, word [0x494646]
mov dx, cx
inc edx
mov cx, dx
mov word [0x494646], cx
movsx edx, cx
and edx, 0x70f20433
cmp edx, 0x68b7cdf7
mov dword [esp + 0x80], eax
jne 0x40f4b9
mov eax, 0x83075063
mov ecx, dword [0x4a15b8]
mov edx, ecx
dec edx
mov dword [0x4a15b8], edx
and ecx, 0xbeaf812f
cmp eax, ecx
jge 0x40f4b4
mov eax, 0x3e2dcdd0
mov ecx, dword [0x4a2978]
imul ecx, ecx, 0xb9f54139
cmp eax, ecx
jle 0x40f4af
jmp 0x40f4af
jmp 0x40f4b4
jmp 0x40f4b9
lea eax, [esp + 0x570]
lea ecx, [esp + 0x122]
mov edx, esp
lea esi, [esp + 0x122]
mov dword [edx + 4], esi
mov dword [edx], 0x4a7438
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], esi
call fcn.00455ab0
mov ecx, dword [0x4a1f1c]
add ecx, 0xf35f49e9
mov dword [0x4a1f1c], ecx
mov ecx, esp
mov edx, dword [esp + 0x74]
mov dword [ecx], edx
mov dword [esp + 0x70], eax
call fcn.0040e1a0
mov dword [esp + 0x11c], eax
mov eax, dword [0x4976d8]
add eax, 0x921827b4
mov di, word [0x48c656]
movsx ecx, di
or eax, ecx
mov dword [0x4a11c4], eax
mov eax, dword [0x48c048]
mov ecx, esp
mov edx, dword [esp + 0x74]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x4a0adc]
and ecx, 0x6d0775a4
mov dword [0x4a0adc], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4444
mov dword [esp + 0x6c], eax
call fcn.00428730
mov dword [esp + 0x594], eax
mov eax, dword [0x4a3338]
add eax, 0x9c5761c6
mov dword [0x4a3338], eax
mov eax, dword [esp + 0x594]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x74]
mov dword [ecx], eax
call fcn.00455ac0
mov di, word [0x492ee4]
mov cx, di
and ecx, 0xf149
mov di, cx
mov word [0x492ee4], di
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x3ba
mov dword [esp + 0x68], eax
call fcn.00428730
mov dword [esp + 0x590], eax
mov word [0x48f1ac], 0xeeef
mov eax, dword [esp + 0x594]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.00419110
mov eax, dword [0x49c2e8]
add eax, 0x40fe4ee1
mov dword [0x49c2e8], eax
mov eax, dword [esp + 0x590]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x570]
call fcn.0041e480
sub esp, 4
mov di, word [0x492ee8]
mov cx, di
or ecx, 0x7ac0
mov di, cx
mov word [0x492ee8], di
mov ecx, dword [esp + 0x590]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x64], eax
call fcn.00419110
mov eax, dword [0x497d3c]
imul eax, eax, 0x80585a5
mov dword [0x497d3c], eax
mov eax, dword [esp + 0x7c]
mov ecx, eax
call fcn.0044fff0
lea ecx, [esp + 0x570]
mov dword [esp + 0x60], eax
call fcn.0043b040
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x5c], ecx
call fcn.004253c0
cmp eax, 0
jne 0x40fd0f
mov eax, dword [0x4a57cc]
xor eax, 0x7ab5717f
mov dword [0x4a57cc], eax
mov eax, dword [0x48bff0]
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x58], edx
call eax
sub esp, 8
mov ecx, dword [0x4956fc]
xor ecx, 0xb5f2efa1
mov dword [0x4956fc], ecx
mov ecx, esp
mov edx, dword [esp + 0x58]
mov dword [ecx], edx
mov dword [esp + 0x54], eax
call fcn.00452420
mov dword [esp + 0x11c], eax
mov eax, dword [0x496804]
mov ecx, eax
inc ecx
mov dword [0x496804], ecx
cmp eax, 0x1e95d056
je 0x40f739
mov eax, dword [0x4a0dbc]
or eax, 0x52992bfe
mov dword [0x4a0dbc], eax
jmp 0x40f758
mov eax, dword [0x4a20b4]
inc eax
mov dword [0x4a20b4], eax
imul eax, eax, 0x4a394c9d
mov ecx, dword [0x4a4ed8]
or ecx, eax
mov dword [0x4a4ed8], ecx
mov eax, dword [esp + 0x11c]
add eax, 0xfffffffe
mov dword [esp + 0x11c], eax
mov cx, word [0x48fb24]
mov ax, cx
shl eax, 5
mov cx, word [0x493852]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x493852], cx
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x118], eax
cmp dword [esp + 0x118], 0
jle 0x40f8ce
mov ax, word [0x48d7b2]
mov cx, ax
xor ecx, 0x23a9
mov ax, cx
mov word [0x48d7b2], ax
mov ecx, dword [esp + 0x118]
movsx ecx, byte [esp + ecx + 0x122]
cmp ecx, 0x5c
jne 0x40f845
mov eax, dword [0x49d9a0]
and eax, 0x77d67c5c
mov dword [0x49d9a0], eax
mov eax, dword [esp + 0x118]
inc eax
mov dword [esp + 0x118], eax
mov eax, dword [0x496f6c]
add eax, 0x93ddeed2
mov dword [0x496f6c], eax
mov eax, dword [esp + 0x118]
mov byte [esp + eax + 0x122], 0
mov eax, dword [0x495318]
xor eax, 0xb48993dd
mov dword [0x495318], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x11c], eax
mov eax, dword [0x4967f4]
or eax, 0xfbafdfe9
mov dword [0x4967f4], eax
jmp 0x40f8ce
mov eax, dword [0x4a4ed8]
inc eax
mov dword [0x4a4ed8], eax
imul eax, eax, 0x935fe429
mov cx, word [0x48e9a2]
movsx edx, cx
and edx, 0x8a08ac04
cmp eax, edx
jl 0x40f8b3
mov eax, 0x30008a41
mov cx, word [0x48d588]
movsx edx, cx
and edx, 0x470cc26
cmp eax, edx
jle 0x40f8ae
mov eax, dword [0x4a28ec]
mov ecx, eax
dec ecx
mov dword [0x4a28ec], ecx
cmp eax, 0x550119cc
jle 0x40f8a9
jmp 0x40f8a9
jmp 0x40f8ae
jmp 0x40f8b3
jmp 0x40f8b8
mov eax, dword [esp + 0x118]
add eax, 0xffffffff
mov dword [esp + 0x118], eax
jmp 0x40f79a
mov eax, 0xae6ed445
mov ecx, dword [0x49e708]
mov edx, dword [0x4969d4]
inc edx
mov dword [0x4969d4], edx
sub edx, 0x99d32b3b
xor ecx, edx
cmp eax, ecx
je 0x40f905
mov eax, dword [0x49a7c4]
xor eax, 0x15b79572
mov dword [0x49a7c4], eax
mov eax, 0x77df4ea2
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4a7438
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], edx
call fcn.00455ab0
mov ecx, dword [0x4a5720]
not ecx
mov si, word [0x48ed82]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x48ed82], si
mov ecx, esp
mov edx, dword [esp + 0x4c]
mov dword [ecx], edx
mov dword [esp + 0x48], eax
call fcn.0040e1a0
mov dword [esp + 0x11c], eax
mov eax, dword [0x49ee40]
add eax, 0x19704db3
mov dword [0x49ee40], eax
mov eax, dword [0x48c048]
mov ecx, esp
mov edx, dword [esp + 0x4c]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x4a5f10]
xor ecx, 0xa032f8ed
mov edx, dword [0x49fc84]
sub edx, ecx
mov dword [0x49fc84], edx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4444
mov dword [esp + 0x44], eax
call fcn.00428730
mov dword [esp + 0x58c], eax
mov si, word [0x48cd62]
mov ax, si
and eax, 0xffdf
mov si, ax
mov word [0x48cd62], si
mov eax, dword [esp + 0x58c]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx], eax
call fcn.00455ac0
mov ecx, dword [0x49c4d8]
add ecx, 0xb3ca9c6a
and ecx, 0xeb8b439b
mov edx, dword [0x4a5e94]
add edx, ecx
mov dword [0x4a5e94], edx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x3ba
mov dword [esp + 0x40], eax
call fcn.00428730
mov dword [esp + 0x588], eax
mov eax, dword [0x4a62d4]
xor eax, 0xffffffff
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jne 0x40fa60
mov eax, dword [0x4980b0]
add eax, 0x5c508617
or eax, 0xc7a5b20c
mov ecx, dword [0x495d74]
and ecx, eax
mov dword [0x495d74], ecx
mov eax, dword [esp + 0x58c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.00419110
mov eax, dword [0x49eda4]
mov dx, word [0x49123c]
mov cx, dx
and ecx, eax
mov dx, cx
mov word [0x49123c], dx
mov eax, dword [esp + 0x588]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x570]
call fcn.0041e480
sub esp, 4
mov dx, word [0x48cfb0]
mov cx, dx
add ecx, 0x434b4fbd
mov dx, cx
mov word [0x48cfb0], dx
mov ecx, dword [esp + 0x588]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x1f
mov dword [esp + 0x3c], eax
call fcn.00419110
mov eax, dword [0x4a543c]
inc eax
mov dword [0x4a543c], eax
mov ecx, dword [0x49d378]
mov esi, ecx
dec esi
mov dword [0x49d378], esi
add ecx, 0x474a8128
and ecx, 0x1aa79029
cmp eax, ecx
jl 0x40fb1e
mov eax, dword [0x4a1dd4]
add eax, 0x9020043
mov dword [0x4a1dd4], eax
lea eax, [esp + 0x570]
lea ecx, [esp + 0x122]
mov dword [esp + 0x38], ecx
mov ecx, eax
call fcn.0044fff0
lea ecx, [esp + 0x570]
mov dword [esp + 0x34], eax
call fcn.0043b040
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x30], ecx
call fcn.004253c0
cmp eax, 0
jne 0x40fcff
mov eax, dword [0x4a3254]
add eax, 0xa6db55e4
mov dword [0x4a3254], eax
mov eax, dword [0x48bff0]
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x2c], edx
call eax
sub esp, 8
mov ecx, dword [0x49e2c8]
mov si, word [0x48f544]
mov dx, si
lea edx, [edx + edx + 0x1f9f719a]
xor ecx, edx
not ecx
mov si, word [0x48ef62]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x48ef62], si
mov ecx, esp
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4a7438
mov dword [esp + 0x28], eax
call fcn.00455ab0
mov ecx, dword [0x49a670]
mov edx, ecx
inc edx
mov dword [0x49a670], edx
mov edx, dword [0x49b210]
and ecx, edx
and ecx, 0x902fa5ad
mov dword [0x49b210], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4444
mov dword [esp + 0x24], eax
call fcn.00428730
mov dword [esp + 0x584], eax
mov si, word [0x4908d6]
movsx eax, si
and eax, 0x7e495c68
mov si, word [0x494e48]
movsx ecx, si
sar ecx, 9
cmp eax, ecx
jg 0x40fc74
mov ax, word [0x4923ba]
mov cx, ax
mov ax, word [0x491992]
mov dx, ax
xor edx, ecx
mov ax, dx
mov word [0x491992], ax
mov eax, dword [esp + 0x584]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x122]
mov dword [ecx], eax
call fcn.00455ac0
mov ecx, dword [0x49a9f8]
xor ecx, 0x45bd359b
mov dword [0x49a9f8], ecx
mov ecx, dword [esp + 0x584]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x20], eax
call fcn.00419110
mov eax, dword [0x4a2acc]
lea eax, [eax*4 - 0x274ac20b]
mov ecx, dword [0x496ca0]
xor ecx, 0x778fb642
cmp eax, ecx
je 0x40fcfa
mov eax, dword [0x4a442c]
inc eax
mov dword [0x4a442c], eax
or eax, 0xd5d2a58e
mov ecx, dword [0x49ef30]
imul ecx, eax
mov dword [0x49ef30], ecx
jmp 0x40fcff
mov eax, dword [0x496088]
inc eax
mov dword [0x496088], eax
mov dword [0x49933c], eax
mov eax, dword [0x499db4]
xor eax, 0xa22d8412
mov dword [0x499db4], eax
mov eax, 0xfbfeaff7
mov ecx, dword [0x4991b8]
imul ecx, ecx, 0x19049d26
mov dword [0x4991b8], ecx
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx], edx
mov dword [esp + 0x1c], eax
call fcn.0040e1a0
mov si, word [0x492c40]
movsx ecx, si
mov edx, dword [esp + 0x1c]
cmp edx, ecx
mov dword [esp + 0x18], eax
jle 0x40fd73
mov eax, dword [0x49ed9c]
imul eax, eax, 0x91561443
mov dword [0x49ed9c], eax
mov eax, dword [0x48bffc]
mov ecx, esp
lea edx, [esp + 0x122]
mov dword [ecx], edx
mov dword [ecx + 4], 2
mov dword [esp + 0x14], edx
call eax
sub esp, 8
mov ecx, dword [0x497a48]
and ecx, 0x222832ef
mov edx, dword [0x497b28]
add edx, ecx
mov dword [0x497b28], edx
mov ecx, esp
mov edx, dword [esp + 0x14]
mov dword [ecx], edx
mov dword [ecx + 4], 0x44e
mov dword [esp + 0x10], eax
call fcn.00417650
mov eax, dword [0x495f48]
add eax, 0xbc3edafd
mov dword [0x495f48], eax
lea ecx, [esp + 0x570]
call fcn.0041d3a0
add esp, 0x5b0
pop esi
pop edi
ret