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

Disassembly:
push ebx
push edi
push esi
sub esp, 0xf8
mov eax, dword [esp + 0x114]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
mov esi, dword [esp + 0x108]
mov dword [esp + 0xf0], eax
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe8], edx
mov dword [esp + 0xe4], esi
mov eax, dword [0x49c488]
add eax, 0xbc583593
mov dword [0x49c488], eax
mov eax, dword [0x491fe8]
mov ecx, dword [0x496c70]
sar ecx, 9
imul ecx, ecx, 0xec127e8a
add eax, ecx
mov dword [0x4a3f18], eax
mov eax, dword [0x4a1894]
sub eax, 0x616bc982
sub eax, 0xf8b9e996
cmp eax, 0xaf4a587e
jne 0x43841a
mov ax, word [0x4b00ea]
movsx ecx, ax
mov ax, word [0x4aa894]
movsx edx, ax
shl edx, 3
xor ecx, edx
mov edx, dword [0x495450]
sub edx, ecx
mov dword [0x495450], edx
xor eax, eax
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x70], eax
call fcn.00412000
cmp eax, 0
jne 0x438450
mov dword [esp + 0xf4], 0xfffffff4
jmp 0x439c22
mov eax, dword [0x49ef14]
add eax, 0xf99e275c
mov dword [0x49ef14], eax
mov eax, esp
lea ecx, [esp + 0x94]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa0]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc4]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.00442210
mov eax, dword [0x49344c]
mov ecx, eax
inc ecx
mov dword [0x49344c], ecx
imul eax, eax, 0x61ca2cd0
mov ecx, 0xa0441eef
sub ecx, eax
mov eax, dword [0x49c4e0]
imul eax, ecx
mov dword [0x49c4e0], eax
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00445610
cmp eax, 0
jge 0x4385b8
mov eax, dword [0x4a587c]
add eax, 0x50204011
mov dword [0x4a587c], eax
cmp dword [esp + 0xe4], 0
je 0x43853d
xor eax, eax
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x6c], eax
call fcn.00442aa0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x438538
jmp 0x439bc6
jmp 0x43853d
mov dword [0x4a75bc], 0xb6f569ce
cmp dword [esp + 0xe8], 0
je 0x438589
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00448490
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x438584
jmp 0x439bc6
jmp 0x438589
mov eax, dword [0x49e4c0]
sar eax, 5
xor eax, 0x8901801c
mov ecx, dword [0x49a3a4]
or eax, ecx
or eax, 0x70fe2663
mov dword [0x49a3a4], eax
mov dword [esp + 0xf4], 0
jmp 0x439c22
lea eax, [esp + 0xc4]
mov ecx, dword [0x4a696c]
and ecx, 0xac080c7
mov dword [0x4a696c], ecx
mov ecx, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00448490
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4385f9
jmp 0x439bc6
lea eax, [esp + 0xb8]
mov ecx, dword [0x4986cc]
add ecx, 0xb3af6749
mov dword [0x4986cc], ecx
mov ecx, dword [esp + 0xf0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00448490
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x43863a
jmp 0x439bc6
lea eax, [esp + 0xac]
mov cx, word [0x4b3a66]
mov dx, cx
xor edx, 0xfb86
mov cx, dx
mov word [0x4b3a66], cx
mov dword [esp + 0xb8], 1
mov dword [esp + 0xc4], 1
mov edx, dword [0x4a8644]
and edx, 0xc0caa3fc
mov dword [0x4a8644], edx
mov edx, dword [esp + 0xec]
mov edx, dword [edx + 4]
add edx, 2
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004119b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4386b1
jmp 0x439bc6
lea eax, [esp + 0xac]
xor ecx, ecx
mov edx, dword [0x49b538]
mov esi, edx
dec esi
mov dword [0x49b538], esi
mov esi, dword [0x4a9b88]
imul edx, esi
imul edx, edx, 0xf9160c48
mov dword [0x4a9b88], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x68], ecx
call fcn.00442aa0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x438707
jmp 0x439bc6
lea eax, [esp + 0xa0]
mov ecx, 2
mov edx, dword [0x4938c0]
add edx, 0xb4f278e1
mov esi, dword [0x497820]
shl esi, 5
xor edx, esi
mov esi, dword [0x4a6dc0]
or esi, edx
mov dword [0x4a6dc0], esi
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x64], ecx
call fcn.004119b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x438761
jmp 0x439bc6
lea eax, [esp + 0x94]
mov ecx, 3
mov dx, word [0x4adc1e]
mov si, dx
imul esi, esi, 0x156a4ba7
mov dx, si
mov word [0x4adc1e], dx
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x60], ecx
call fcn.004119b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4387b0
jmp 0x439bc6
mov eax, 0x67717e7e
mov ecx, dword [0x4a7518]
xor ecx, 0xffffffff
cmp eax, ecx
je 0x4387da
mov eax, dword [0x498084]
or eax, 0xb3b9981f
mov dword [0x498084], eax
jmp 0x4387f2
mov ax, word [0x4b1ee2]
mov cx, ax
xor ecx, 0x6f00
mov ax, cx
mov word [0x4b1ee2], ax
mov eax, esp
lea ecx, [esp + 0xb8]
mov dword [eax], ecx
call fcn.00434540
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xd0], eax
mov eax, dword [0x492064]
add eax, 0xde782076
mov dword [0x4a5804], eax
cmp dword [esp + 0xd0], 0x1f
jge 0x438912
lea eax, [esp + 0xc4]
mov ecx, dword [0x4a6bbc]
not ecx
mov edx, dword [0x4a34e4]
inc edx
and ecx, edx
mov dword [0x4a34e4], edx
and ecx, 0xc4067812
mov edx, dword [0x4a71f8]
imul edx, ecx
mov dword [0x4a71f8], edx
mov ecx, dword [esp + 0xd0]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xd0], edx
mov ecx, dword [0x499004]
or ecx, 0xdd7d79ca
mov dword [0x499004], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004234b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4388b9
jmp 0x439bc6
lea eax, [esp + 0xb8]
mov dword [0x4a8864], 0x72961c3a
mov ecx, dword [esp + 0xd0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004234b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4388f2
jmp 0x439bc6
mov eax, dword [0x492cd8]
mov cx, word [0x4b0f58]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4b0f58], cx
jmp 0x43891d
mov dword [esp + 0xd0], 0
mov eax, dword [0x497750]
imul eax, eax, 0x9df9312f
mov dword [0x497750], eax
mov eax, dword [esp + 0xc8]
dec eax
mov dword [esp + 0xd8], eax
mov eax, dword [0x4a4e10]
or eax, 0x82058010
mov dword [0x4a4e10], eax
mov eax, dword [esp + 0xbc]
dec eax
mov dword [esp + 0xd4], eax
mov word [0x4aa2c8], 0x42f2
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd4]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xb8]
mov dword [ecx], eax
call fcn.004234b0
mov dword [0x4969f8], 0x508cbb57
mov dword [esp + 0x5c], eax
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xb8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00447330
cmp eax, 0
jl 0x438a38
mov eax, dword [0x49d388]
add eax, 0xdefaef75
mov dword [0x49d388], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd4]
sub eax, ecx
mov ecx, dword [esp + 0xb4]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov eax, dword [0x49e0d8]
mov ecx, dword [0x4a43d8]
imul ecx, eax
mov dword [0x4a43d8], ecx
mov eax, esp
lea ecx, [esp + 0xb8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00424000
mov ecx, dword [0x4936cc]
not ecx
mov edx, dword [0x49ead4]
imul edx, ecx
mov dword [0x49ead4], edx
mov dword [esp + 0x58], eax
jmp 0x438997
mov eax, dword [0x4a5b64]
mov cx, word [0x4acca0]
mov dx, cx
lea eax, [eax + edx + 0x6711b904]
mov cx, ax
mov word [0x4acca0], cx
mov eax, dword [esp + 0xd8]
mov edx, dword [esp + 0xd4]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xb8]
mov dword [edx], eax
call fcn.0042f910
mov edx, dword [0x49e470]
inc edx
mov dword [0x49e470], edx
and edx, 0xf059df32
mov cx, word [0x4b23dc]
mov si, cx
dec esi
mov cx, si
mov word [0x4b23dc], cx
movsx esi, cx
or edx, esi
mov esi, dword [0x4a6d7c]
sub esi, edx
mov dword [0x4a6d7c], esi
mov edx, dword [esp + 0xd8]
mov dword [esp + 0xdc], edx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xdc]
cmp eax, dword [esp + 0xd4]
jle 0x43993a
mov eax, 0xd1cfac6c
mov ecx, dword [0x49ee8c]
add ecx, 0xec1bbeaf
or ecx, 0x623ad132
cmp eax, ecx
jne 0x438b0d
mov eax, dword [0x49d16c]
xor eax, 0x3beeff48
mov dword [0x49d16c], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xc0]
cmp eax, dword [edx + ecx*4]
jb 0x438b59
mov eax, dword [esp + 0xdc]
sub eax, dword [esp + 0xd4]
sub eax, 1
mov ecx, dword [esp + 0xb4]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x4392e2
mov eax, 0xc2abfd6d
mov ecx, dword [0x49f61c]
imul ecx, ecx, 0xa757c40a
mov dword [0x49f61c], ecx
mov ecx, dword [0x4a8c94]
or ecx, 0x37ee37e6
mov dword [0x4a8c94], ecx
mov ecx, dword [0x4a66c4]
dec ecx
mov dword [0x4a66c4], ecx
cmp eax, ecx
jge 0x438bdf
mov eax, dword [0x4a90c4]
sar eax, 7
and eax, 0x68011087
mov ecx, dword [0x49ff64]
shl ecx, 1
imul ecx, ecx, 0xf5ad427f
cmp eax, ecx
jg 0x438bda
mov eax, dword [0x49c428]
imul eax, eax, 0x413dbe6a
add eax, 0x5931c1b7
mov ecx, dword [0x497aa8]
imul ecx, eax
mov dword [0x497aa8], ecx
jmp 0x438bfa
mov eax, dword [0x4a5210]
not eax
add eax, 0xd2b10167
mov ecx, dword [0x493e08]
imul ecx, eax
mov dword [0x493e08], ecx
mov eax, 0x9dcfab68
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xc0]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x78], ecx
mov ecx, dword [0x4a411c]
add ecx, 0xb981c914
mov dword [0x4a411c], ecx
movzx ecx, word [esp + 0x78]
mov dword [esp + 0x80], ecx
mov ecx, dword [0x4a340c]
inc ecx
mov dword [0x4a340c], ecx
cmp eax, ecx
jle 0x438c68
mov eax, dword [0x4a693c]
mov ecx, eax
inc ecx
mov dword [0x4a693c], ecx
add eax, 0x34b557c5
mov ecx, dword [0x4a6284]
or ecx, eax
mov dword [0x4a6284], ecx
movzx eax, word [esp + 0x7a]
mov dword [esp + 0x7c], eax
mov eax, dword [0x49b414]
not eax
add eax, 0xac4e979
mov ecx, dword [0x4a5c10]
xor ecx, 0xffffffff
or ecx, 0x9b14c4e8
cmp eax, ecx
je 0x438ca3
mov eax, dword [0x49e214]
and eax, 0x1e575805
mov dword [0x49e214], eax
mov eax, 0x9ffde8e6
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xcc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x7c]
xor esi, esi
mov dword [esp + 0x50], eax
mov eax, ecx
mov dword [esp + 0x4c], edx
mov edx, esi
mov ecx, dword [esp + 0x4c]
div ecx
mov dword [esp + 0x8c], eax
mov eax, dword [0x4a7c4c]
mov di, word [0x4b5e6a]
movsx ecx, di
add ecx, 0x8de9b647
and eax, ecx
mov ecx, dword [esp + 0x50]
cmp ecx, eax
je 0x438d0a
mov eax, dword [0x498670]
xor eax, 0x5e596fbf
mov dword [0x498670], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x84], eax
mov si, word [0x4b48b2]
movsx eax, si
mov ecx, dword [0x4a1640]
inc ecx
mov dword [0x4a1640], ecx
xor eax, ecx
mov ecx, dword [0x49e244]
and ecx, eax
mov dword [0x49e244], ecx
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov dword [esp + 0x84], eax
mov si, word [0x4b3f4a]
mov ax, si
add eax, 0xdbdfbbef
mov si, ax
mov word [0x4b3f4a], si
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x84]
or ecx, eax
mov dword [esp + 0x84], ecx
mov si, word [0x4b53ee]
movsx eax, si
not eax
add eax, 0x66204966
or eax, 0x9a3ba686
mov ecx, dword [0x4a8730]
sub ecx, eax
mov dword [0x4a8730], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x80]
imul eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [0x495f6c]
mov ecx, eax
inc ecx
mov dword [0x495f6c], ecx
imul eax, eax, 0xc313af8d
and eax, 0x761b9dcf
mov ecx, dword [0x4a10ec]
or ecx, eax
mov dword [0x4a10ec], ecx
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
jae 0x438f4c
mov eax, 0x851f505f
mov cx, word [0x4aa5b4]
mov dx, cx
inc edx
mov si, dx
mov word [0x4aa5b4], si
movsx edx, cx
cmp eax, edx
jne 0x438e4f
mov eax, dword [0x492938]
mov ecx, dword [0x49da6c]
and ecx, eax
mov dword [0x49da6c], ecx
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x84]
add ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x492634]
imul eax, eax, 0x109281b5
mov dword [0x492634], eax
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x78]
mov byte [esp + 0x4b], cl
jb 0x438ead
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
setb cl
mov byte [esp + 0x4b], cl
mov al, byte [esp + 0x4b]
test al, 1
jne 0x438ebe
jmp 0x438ee6
mov eax, dword [esp + 0x8c]
add eax, 0xffffffff
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x84]
mov dword [esp + 0x84], eax
jmp 0x438e82
mov eax, 0x321d3018
mov ecx, dword [0x49af5c]
mov edx, ecx
dec edx
mov dword [0x49af5c], edx
cmp eax, ecx
jg 0x438f38
mov eax, 0xa5f2c69d
mov ecx, dword [0x4a12d8]
or ecx, 0x5e67ec45
cmp eax, ecx
jge 0x438f33
mov ax, word [0x4ae8f4]
mov cx, ax
add ecx, 0x104ddbb8
mov ax, cx
mov word [0x4ae8f4], ax
jmp 0x438f47
mov eax, dword [0x49b07c]
and eax, 0x6e0a8557
mov dword [0x49b07c], eax
jmp 0x438f4c
mov eax, dword [0x492e88]
mov ecx, eax
inc ecx
mov dword [0x492e88], ecx
and eax, 0x8161d3b6
mov ecx, dword [0x49a2c0]
inc ecx
mov dword [0x49a2c0], ecx
xor eax, ecx
mov ecx, dword [0x498dec]
xor ecx, eax
mov dword [0x498dec], ecx
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x49b1fc]
xor eax, 0x55c1acd
mov dword [0x49b1fc], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
xor edx, edx
div ecx
mov dword [esp + 0x90], eax
mov eax, dword [0x49e7d4]
mov ecx, eax
inc ecx
mov dword [0x49e7d4], ecx
mov ecx, dword [0x495d94]
mov edx, 0xcd098a85
sub edx, ecx
xor eax, edx
mov ecx, dword [0x493c84]
shl ecx, 9
add ecx, 0x2050c1fc
sub ecx, 0xa5295611
cmp eax, ecx
je 0x439025
mov ax, word [0x4b4b60]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4b4b60], dx
movsx ecx, ax
mov ax, word [0x4ad624]
movsx esi, ax
xor esi, 0x8d87022f
or ecx, esi
mov esi, dword [0x49a058]
xor esi, ecx
mov dword [0x49a058], esi
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x90]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x88], eax
mov si, word [0x4adbec]
mov ax, si
add eax, 0x81021000
mov si, ax
mov word [0x4adbec], si
mov eax, dword [esp + 0x88]
shl eax, 0x10
mov dword [esp + 0x88], eax
mov eax, dword [0x49a224]
xor eax, 0xefb2d655
mov dword [0x49a224], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x88]
or ecx, eax
mov dword [esp + 0x88], ecx
mov eax, dword [0x497634]
imul eax, eax, 0xbb225073
mov dword [0x497634], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x80]
imul eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [0x4a8f64]
add eax, 0xa6ea289
mov dword [0x4a8f64], eax
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x74]
jae 0x4391fc
mov eax, dword [0x4a34bc]
or eax, 0x199cc449
mov dword [0x4a34bc], eax
mov eax, dword [esp + 0x90]
dec eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x88]
add ecx, eax
mov dword [esp + 0x88], ecx
mov dx, word [0x4ad796]
mov ax, dx
inc eax
mov si, ax
mov word [0x4ad796], si
movsx eax, dx
add eax, 0x59bf6276
mov dx, word [0x4b3572]
movsx ecx, dx
xor eax, ecx
cmp eax, 0xfdf07fef
jge 0x43916c
mov eax, dword [0x4a0cd8]
not eax
mov cx, word [0x4b0990]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x4b0990], cx
jmp 0x439184
mov eax, dword [0x4a3d88]
or eax, 0x3d95a3dc
mov ecx, dword [0x4a3488]
and ecx, eax
mov dword [0x4a3488], ecx
jmp 0x439189
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
mov byte [esp + 0x4a], cl
jb 0x4391b4
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x74]
setb cl
mov byte [esp + 0x4a], cl
mov al, byte [esp + 0x4a]
test al, 1
jne 0x4391c5
jmp 0x4391ed
mov eax, dword [esp + 0x90]
add eax, 0xffffffff
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x78]
add eax, dword [esp + 0x88]
mov dword [esp + 0x88], eax
jmp 0x439189
mov eax, dword [0x495f4c]
xor eax, 0x2c94c1a7
mov dword [0x495f4c], eax
mov eax, 0x6f5476e0
mov cx, word [0x4af86e]
movsx edx, cx
xor edx, 0xffffffff
cmp eax, edx
jl 0x439225
mov eax, dword [0x49af40]
add eax, 0xfb4bfc81
mov dword [0x49af40], eax
mov eax, 0xf879277f
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x88]
sub edx, ecx
mov dword [esp + 0x88], edx
mov ecx, dword [0x4a9e6c]
mov edx, ecx
dec edx
mov dword [0x4a9e6c], edx
mov edx, 0x8c0bd32e
sub edx, ecx
mov ecx, dword [0x4a55dc]
xor edx, ecx
mov ecx, dword [0x49c420]
or ecx, edx
mov dword [0x49c420], ecx
mov ecx, dword [esp + 0x8c]
shl ecx, 0x10
mov edx, dword [esp + 0x90]
or ecx, edx
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0xd4]
sub edx, esi
mov esi, dword [esp + 0xb4]
mov dword [esi + edx*4 - 4], ecx
mov ecx, dword [0x4a0700]
imul ecx, ecx, 0x13258c1c
cmp eax, ecx
je 0x4392c0
mov eax, dword [0x4953e4]
add eax, 0x715983c2
mov dword [0x4953e4], eax
jmp 0x4392dd
mov ax, word [0x4b2252]
movsx ecx, ax
xor ecx, 0xb0dd3179
mov edx, dword [0x49ec1c]
add edx, ecx
mov dword [0x49ec1c], edx
jmp 0x4392e2
mov eax, 0xb5f9f7bf
mov ecx, dword [0x49af4c]
mov edx, ecx
inc edx
mov dword [0x49af4c], edx
xor ecx, 0x1723ccf4
mov edx, dword [0x498d14]
and edx, ecx
mov dword [0x498d14], edx
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd4]
sub ecx, edx
mov edx, dword [esp + 0xb4]
mov esi, dword [edx + ecx*4 - 4]
inc esi
mov dword [edx + ecx*4 - 4], esi
mov di, word [0x4b35a4]
movsx ecx, di
sar ecx, 3
mov edx, dword [0x493554]
xor edx, 0xffffffff
imul ecx, edx
and ecx, 0x25680d6
cmp eax, ecx
jl 0x439369
mov ax, word [0x4ab37a]
mov cx, ax
xor ecx, 0xa2a9
mov ax, cx
mov word [0x4ab37a], ax
jmp 0x43936e
lea eax, [esp + 0xa0]
xor ecx, ecx
mov edx, dword [0x495714]
mov esi, dword [0x492984]
add edx, esi
or edx, 0x3b95
mov di, word [0x4b4cd0]
mov si, di
sub esi, edx
mov di, si
mov word [0x4b4cd0], di
mov edx, dword [esp + 0xdc]
mov esi, dword [esp + 0xd4]
sub edx, esi
mov esi, dword [esp + 0xb4]
mov ebx, dword [esi + edx*4 - 4]
dec ebx
mov dword [esi + edx*4 - 4], ebx
mov di, word [0x4b3590]
mov dx, di
add edx, 0x927c4640
mov di, dx
mov word [0x4b3590], di
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x44], ecx
call fcn.00442aa0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x439404
jmp 0x439bc6
mov ax, word [0x4b426e]
mov cx, ax
xor ecx, 0x472a
mov ax, cx
mov word [0x4b426e], ax
cmp dword [esp + 0xd4], 1
jge 0x439435
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x43944d
mov eax, dword [esp + 0xd4]
sub eax, 1
mov ecx, dword [esp + 0xc0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, 0x1101018c
mov edx, dword [esp + 0xa8]
mov dword [edx], eax
mov eax, dword [0x499ca4]
xor eax, 0x14a9ffee
xor eax, 0xe15fdf1d
cmp ecx, eax
jne 0x43949b
mov eax, dword [0x49c12c]
mov ecx, dword [0x49f964]
mov edx, ecx
inc edx
mov dword [0x49f964], edx
or eax, ecx
mov ecx, dword [0x4a91e8]
imul ecx, eax
mov dword [0x4a91e8], ecx
lea eax, [esp + 0xa0]
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xc0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0xa8]
mov dword [edx + 4], ecx
mov ecx, dword [0x4a28bc]
xor ecx, 0x253bd318
mov dword [0x4a28bc], ecx
mov ecx, dword [esp + 0xdc]
sub ecx, dword [esp + 0xd4]
sub ecx, 1
mov edx, dword [esp + 0xb4]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0043b5b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x43950f
jmp 0x439bc6
lea eax, [esp + 0x94]
xor ecx, ecx
mov dx, word [0x4b2c06]
mov si, dx
and esi, 0xe1fd
mov dx, si
mov word [0x4b2c06], dx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x3c], ecx
call fcn.00442aa0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x43955b
jmp 0x439bc6
mov eax, dword [0x4a7e5c]
or eax, 0xfb9ab161
mov dword [0x4a7e5c], eax
cmp dword [esp + 0xdc], 2
jge 0x439583
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x43959b
mov eax, dword [esp + 0xdc]
sub eax, 2
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x9c]
mov dword [ecx], eax
mov eax, dword [0x4a3e44]
imul eax, eax, 0x99472e7d
mov dword [0x4a3e44], eax
cmp dword [esp + 0xdc], 1
jge 0x4395d1
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x4395e9
mov eax, dword [esp + 0xdc]
sub eax, 1
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, 0x195d188d
mov edx, dword [esp + 0x9c]
mov dword [edx + 4], eax
mov si, word [0x4b4998]
movsx eax, si
shl eax, 1
imul eax, eax, 0xd7aa88c0
or eax, 0xc1895a90
cmp ecx, eax
jge 0x439636
mov eax, dword [0x49bde8]
add eax, eax
and eax, 0x4dd169c4
mov ecx, dword [0x4a6734]
sub ecx, eax
mov dword [0x4a6734], ecx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 8], eax
mov eax, dword [0x49a090]
imul eax, eax, 0x92464102
mov dword [0x49a090], eax
lea eax, [esp + 0xa0]
lea ecx, [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00447330
cmp eax, 0
jg 0x43936e
lea eax, [esp + 0xa0]
lea ecx, [esp + 0xb8]
mov dx, word [0x4ad84c]
movsx esi, dx
add esi, 0x50a00ae1
mov edi, dword [0x4a9ab8]
xor edi, esi
mov dword [0x4a9ab8], edi
mov esi, dword [esp + 0xdc]
sub esi, dword [esp + 0xd4]
sub esi, 1
mov edi, dword [esp + 0xb4]
mov esi, dword [edi + esi*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.0043b5b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4396f0
jmp 0x439bc6
lea eax, [esp + 0xa0]
mov ecx, dword [0x495c14]
mov dx, word [0x4af38a]
mov si, dx
sub esi, ecx
mov dx, si
mov word [0x4af38a], dx
mov ecx, dword [esp + 0xdc]
sub ecx, dword [esp + 0xd4]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004234b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x439748
jmp 0x439bc6
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xa0]
mov edx, dword [0x491e4c]
imul edx, edx, 0x697d794b
mov dword [0x491e4c], edx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00424000
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x43978d
jmp 0x439bc6
lea eax, [esp + 0xc4]
xor ecx, ecx
mov dx, word [0x4aa074]
movsx esi, dx
sar esi, 9
mov edi, dword [0x4a4524]
sar edi, 7
xor esi, edi
mov edi, dword [0x49da40]
and edi, esi
mov dword [0x49da40], edi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x30], ecx
call fcn.00412000
cmp eax, 0
jge 0x439914
lea eax, [esp + 0xa0]
lea ecx, [esp + 0xb8]
mov dx, word [0x4b2ac8]
mov si, dx
xor esi, 0x3978
mov dx, si
mov word [0x4b2ac8], dx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00448490
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x439822
jmp 0x439bc6
lea eax, [esp + 0xa0]
mov cx, word [0x4ac93c]
movsx edx, cx
shl edx, 5
xor edx, 0x6064b918
mov dword [0x497518], edx
mov edx, dword [esp + 0xdc]
sub edx, dword [esp + 0xd4]
sub edx, 1
shl edx, 5
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004234b0
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x439877
jmp 0x439bc6
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xa0]
mov dx, word [0x4af538]
mov si, dx
imul esi, esi, 0x586f573e
mov dx, si
mov word [0x4af538], dx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00441b80
mov dword [esp + 0xe0], eax
cmp eax, 0
je 0x4398c4
jmp 0x439bc6
mov eax, dword [0x4952c4]
mov ecx, dword [0x49bc28]
or eax, ecx
mov ecx, dword [0x4a9cb4]
or ecx, eax
mov dword [0x4a9cb4], ecx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd4]
sub eax, ecx
mov ecx, dword [esp + 0xb4]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x499ec8]
inc eax
mov dword [0x499ec8], eax
xor eax, 0x2767d252
mov dword [0x49a25c], eax
mov eax, dword [0x4a9a6c]
imul eax, eax, 0xaa044108
mov dword [0x4a9a6c], eax
mov eax, dword [esp + 0xdc]
add eax, 0xffffffff
mov dword [esp + 0xdc], eax
jmp 0x438acb
mov ax, word [0x4aae04]
movsx ecx, ax
mov edx, dword [0x4a597c]
sub edx, ecx
mov dword [0x4a597c], edx
cmp dword [esp + 0xe4], 0
je 0x439a5c
mov eax, 0xf5ef95cf
mov ecx, dword [0x497188]
mov edx, ecx
inc edx
mov dword [0x497188], edx
add ecx, 0x4b4835e4
mov edx, dword [0x49ddac]
sub edx, ecx
mov dword [0x49ddac], edx
mov ecx, dword [esp + 0xe4]
mov edx, esp
lea esi, [esp + 0xac]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x2c], eax
call fcn.00448490
mov di, word [0x4ab3b8]
movsx ecx, di
xor ecx, 0x8cc69eea
mov edx, dword [esp + 0x2c]
cmp edx, ecx
mov dword [esp + 0x28], eax
jne 0x439a20
mov eax, 0x50f8a1e2
mov cx, word [0x4b2af8]
mov dx, cx
dec edx
mov si, dx
mov word [0x4b2af8], si
movsx edx, cx
cmp eax, edx
jge 0x439a1b
mov eax, 0xe4766d91
mov ecx, dword [0x4a3d48]
xor ecx, 0xffffffff
imul ecx, ecx, 0x8eb513b4
and ecx, 0xafdc98a4
cmp eax, ecx
jg 0x439a11
jmp 0x439a16
jmp 0x439a16
jmp 0x439a1b
jmp 0x439a2f
mov eax, dword [0x4a86c4]
add eax, 0xd0b6d807
mov dword [0x4a86c4], eax
mov eax, dword [esp + 0xec]
mov eax, dword [eax]
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx]
imul eax, ecx
mov ecx, dword [esp + 0xe4]
mov dword [ecx], eax
mov eax, dword [0x499afc]
add eax, 0x9f3e5fbf
mov dword [0x499afc], eax
mov eax, dword [0x49b2d0]
add eax, 0xcc6c439c
mov dword [0x49b2d0], eax
cmp dword [esp + 0xe8], 0
je 0x439bae
mov eax, 0xc5088840
mov ecx, dword [0x495310]
add ecx, 0x8378da7e
mov dword [0x495310], ecx
mov ecx, dword [esp + 0xd0]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xc4]
mov dword [edx], ecx
mov dword [esp + 0x24], eax
call fcn.0042f910
mov ecx, dword [0x4a1d38]
mov edx, ecx
dec edx
mov dword [0x4a1d38], edx
mov edx, dword [esp + 0x24]
cmp edx, ecx
mov dword [esp + 0x20], eax
jl 0x439adc
mov eax, dword [0x493bec]
or eax, 0x31c6a10f
mov dword [0x493bec], eax
mov eax, dword [esp + 0xe8]
mov ecx, esp
lea edx, [esp + 0xc4]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00448490
mov ecx, dword [0x498e40]
and ecx, 0xa99e6a20
mov dword [0x498e40], ecx
mov ecx, dword [esp + 0xec]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe8]
mov dword [edx], ecx
mov si, word [0x4aae7c]
mov cx, si
dec ecx
mov si, cx
mov word [0x4aae7c], si
movsx ecx, si
mov edx, dword [0x495540]
sar edx, 6
add ecx, edx
and ecx, 0x511c722c
cmp ecx, 0xea63cafd
mov dword [esp + 0x1c], eax
jl 0x439b62
mov eax, dword [0x49f054]
add eax, 0xffef77ee
mov dword [0x49f054], eax
xor eax, eax
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.00412000
cmp eax, 0
jne 0x439b95
mov eax, dword [esp + 0xe8]
mov dword [eax], 1
mov ax, word [0x4aa814]
movsx ecx, ax
add ecx, ecx
mov edx, dword [0x493d38]
xor edx, ecx
mov dword [0x493d38], edx
mov ax, word [0x4b5328]
mov cx, ax
imul ecx, ecx, 0xfded9a3c
mov ax, cx
mov word [0x4b5328], ax
mov eax, esp
lea ecx, [esp + 0x94]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa0]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc4]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0040d7a0
mov eax, dword [0x4a0250]
or eax, 0xf43d3013
mov dword [0x4a0250], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0xf4]
add esp, 0xf8
pop esi
pop edi
pop ebx
ret