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

Disassembly:
push edi
push esi
sub esp, 0x100
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x10c]
mov dword [esp + 0xf8], eax
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf0], edx
mov dword [esp + 0xec], esi
mov eax, dword [0x494b20]
inc eax
mov dword [0x494b20], eax
cmp eax, 0x5df71f50
jl 0x401a95
mov eax, dword [0x499088]
or eax, 0xb69f980b
mov dword [0x499088], eax
xor eax, eax
mov ecx, dword [0x4956bc]
add ecx, 0x9ba8dbc9
mov dword [0x4956bc], ecx
mov ecx, dword [0x499320]
or ecx, 0xcd0a0817
mov dword [0x499320], ecx
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x78], eax
call fcn.0040b9f0
cmp eax, 0
jne 0x401aef
mov dword [esp + 0xfc], 0xfffffff4
jmp 0x403397
mov eax, dword [0x49af50]
imul eax, eax, 0xbf6b0096
xor eax, 0x47b09023
mov ecx, dword [0x49aad4]
sub ecx, eax
mov dword [0x49aad4], ecx
mov eax, esp
lea ecx, [esp + 0x9c]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa8]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xcc]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.00419430
mov eax, dword [0x49529c]
add eax, 0xffbfaed8
mov dword [0x49529c], eax
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00413230
cmp eax, 0
jge 0x401cae
mov eax, 0x1d061f60
mov ecx, dword [0x499e90]
mov edx, ecx
dec edx
mov dword [0x499e90], edx
cmp eax, ecx
je 0x401be6
mov eax, 0x7fffdfd9
mov ecx, dword [0x4971ac]
dec ecx
mov dword [0x4971ac], ecx
mov dx, word [0x49daf2]
movsx esi, dx
sub ecx, esi
cmp eax, ecx
jge 0x401be1
mov eax, dword [0x498dbc]
inc eax
mov dword [0x498dbc], eax
mov cx, word [0x49dcec]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x49dcec], cx
jmp 0x401be6
cmp dword [esp + 0xec], 0
je 0x401c2b
xor eax, eax
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x74], eax
call fcn.00416e80
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401c26
jmp 0x40331b
jmp 0x401c2b
mov eax, dword [0x495970]
imul eax, eax, 0x9df79734
mov cx, word [0x49b128]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x49b128], cx
cmp dword [esp + 0xf0], 0
je 0x401c8e
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0043b190
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401c89
jmp 0x40331b
jmp 0x401c8e
mov eax, dword [0x498968]
imul eax, eax, 0xa3cc3c42
mov dword [0x498968], eax
mov dword [esp + 0xfc], 0
jmp 0x403397
lea eax, [esp + 0xcc]
mov ecx, dword [0x495254]
or ecx, 0x82914b69
mov dword [0x495254], ecx
mov ecx, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043b190
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401cef
jmp 0x40331b
mov eax, 0x2202496a
mov ecx, dword [0x497c90]
inc ecx
mov dword [0x497c90], ecx
sub ecx, 0x2cc3e1e0
cmp eax, ecx
jle 0x401d50
mov eax, 0xeb723f66
mov ecx, dword [0x496438]
shl ecx, 7
cmp eax, ecx
jne 0x401d4b
mov eax, dword [0x49509c]
mov ecx, eax
dec ecx
mov dword [0x49509c], ecx
mov ecx, dword [0x49563c]
not ecx
sub eax, ecx
mov ecx, dword [0x4982e4]
add ecx, eax
mov dword [0x4982e4], ecx
jmp 0x401d50
lea eax, [esp + 0xc0]
mov ecx, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043b190
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401d7f
jmp 0x40331b
mov eax, 0xd1c2393f
mov ecx, dword [0x499430]
dec ecx
mov dword [0x499430], ecx
sub eax, ecx
cmp eax, 0xc10f4d36
jg 0x401de1
mov eax, 0x5e1d00ad
mov cx, word [0x49c2b6]
mov dx, cx
dec edx
mov si, dx
mov word [0x49c2b6], si
movsx edx, cx
cmp eax, edx
jle 0x401dd2
mov dword [0x49a5d4], 0x4edb36d7
jmp 0x401ddc
mov dword [0x494bc0], 0xf3bfff9b
jmp 0x401de1
lea eax, [esp + 0xb4]
mov dword [esp + 0xc0], 1
mov dword [esp + 0xcc], 1
mov ecx, dword [0x499370]
imul ecx, ecx, 0x15578b50
mov dword [0x499370], ecx
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043a3e0
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401e3e
jmp 0x40331b
lea eax, [esp + 0xb4]
xor ecx, ecx
mov edx, dword [0x4973d4]
sar edx, 1
imul edx, edx, 0x9dd20b41
add edx, 0xd9647abb
mov esi, dword [0x496838]
or esi, edx
mov dword [0x496838], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x70], ecx
call fcn.00416e80
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401e92
jmp 0x40331b
lea eax, [esp + 0xa8]
mov ecx, 2
mov edx, dword [0x4957ec]
or edx, 0x485711d8
mov dword [0x4957ec], edx
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x6c], ecx
call fcn.0043a3e0
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401ed9
jmp 0x40331b
lea eax, [esp + 0x9c]
mov ecx, 3
mov edx, dword [0x49aee8]
add edx, 0x56f44d
mov dword [0x49aee8], edx
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x68], ecx
call fcn.0043a3e0
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x401f20
jmp 0x40331b
mov eax, dword [0x49a6a4]
imul eax, eax, 0xddeb5f9b
xor eax, 0x3936c640
mov ecx, dword [0x496a34]
and ecx, eax
mov dword [0x496a34], ecx
mov eax, esp
lea ecx, [esp + 0xc0]
mov dword [eax], ecx
call fcn.00437920
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xd8], eax
mov eax, dword [0x497718]
or eax, 0x3e7df3b5
mov dword [0x497718], eax
cmp dword [esp + 0xd8], 0x1f
jge 0x40208f
lea eax, [esp + 0xcc]
mov ecx, dword [0x499910]
dec ecx
mov dword [0x499910], ecx
mov dx, word [0x49d1a2]
movsx esi, dx
not esi
or ecx, esi
mov esi, dword [0x495c58]
imul esi, ecx
mov dword [0x495c58], esi
mov ecx, dword [esp + 0xd8]
mov esi, 0x1f
sub esi, ecx
mov dword [esp + 0xd8], esi
mov ecx, dword [0x4960e0]
xor ecx, 0xdf6b0dbb
mov esi, dword [0x497558]
or esi, ecx
mov dword [0x497558], esi
mov ecx, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042de30
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x40200b
jmp 0x40331b
lea eax, [esp + 0xc0]
mov cx, word [0x49b76e]
mov dx, cx
and edx, 0x972c
mov cx, dx
mov word [0x49b76e], cx
mov edx, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0042de30
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402054
jmp 0x40331b
mov eax, dword [0x4957ec]
inc eax
mov dword [0x4957ec], eax
mov ecx, dword [0x495e8c]
mov edx, ecx
inc edx
mov dword [0x495e8c], edx
mov si, word [0x49bb02]
movsx edx, si
sub ecx, edx
or eax, ecx
mov ecx, dword [0x497b34]
and ecx, eax
mov dword [0x497b34], ecx
jmp 0x40209a
mov dword [esp + 0xd8], 0
mov eax, 0x7ff7fffb
mov ecx, dword [0x495ecc]
xor ecx, 0x17abd9e1
cmp eax, ecx
jl 0x4020c2
mov eax, dword [0x495494]
xor eax, 0x7a49bfcb
mov dword [0x495494], eax
mov eax, dword [esp + 0xd0]
dec eax
mov dword [esp + 0xe0], eax
mov cx, word [0x49d164]
mov ax, cx
add eax, 0x7a310df2
mov cx, ax
mov word [0x49d164], cx
mov eax, dword [esp + 0xc4]
dec eax
mov dword [esp + 0xdc], eax
mov eax, dword [0x495a1c]
add eax, 0xc745e5ba
mov dword [0x495a1c], eax
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xdc]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xc0]
mov dword [edx], eax
call fcn.0042de30
mov edx, dword [0x497278]
mov esi, dword [0x4972ac]
xor edx, esi
not edx
mov dword [0x4972ac], edx
mov dword [esp + 0x64], eax
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xc0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00403670
cmp eax, 0
jl 0x402248
mov eax, dword [0x495af8]
mov ecx, eax
inc ecx
mov dword [0x495af8], ecx
imul eax, eax, 0xb04d7b2c
imul eax, eax, 0x20cf0cef
cmp eax, 0xb4a45e81
jle 0x40219f
mov eax, dword [0x496c74]
xor eax, 0x5a7006f2
mov dword [0x496c74], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
sub eax, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov si, word [0x49b348]
mov ax, si
inc eax
mov si, ax
mov word [0x49b348], si
movsx eax, si
or eax, 0x249ce003
cmp eax, 0xddaf9ce8
je 0x402208
mov ax, word [0x49ca3a]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x49ca3a], dx
movsx ecx, ax
or ecx, 0x2451c148
mov dword [0x496664], ecx
mov eax, esp
lea ecx, [esp + 0xc0]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xcc]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00416630
mov ecx, dword [0x497ea0]
add ecx, 0xd841bb80
mov edx, dword [0x49b07c]
xor ecx, edx
mov dword [0x494d30], ecx
mov dword [esp + 0x60], eax
jmp 0x402148
mov eax, dword [0x495e84]
inc eax
mov dword [0x495e84], eax
or eax, 0xf6ffcfd7
mov ecx, dword [0x49652c]
and ecx, eax
mov dword [0x49652c], ecx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc0]
mov dword [ecx], eax
call fcn.00417130
mov ecx, dword [0x495044]
and ecx, 0x5f722523
mov dword [0x495044], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xe4]
cmp eax, dword [esp + 0xdc]
jle 0x403052
mov eax, dword [0x496344]
and eax, 0xa563d40c
mov dword [0x496344], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
cmp eax, dword [edx + ecx*4]
jb 0x40231f
mov eax, dword [esp + 0xe4]
sub eax, dword [esp + 0xdc]
sub eax, 1
mov ecx, dword [esp + 0xbc]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x4029d7
mov eax, 0x350f6b8b
mov ecx, dword [0x49aad4]
mov edx, ecx
dec edx
mov dword [0x49aad4], edx
imul ecx, ecx, 0x11781afa
mov edx, dword [0x497208]
mov esi, dword [0x496aa8]
inc esi
mov dword [0x496aa8], esi
sub eax, esi
xor edx, eax
cmp ecx, edx
jge 0x402370
mov eax, dword [0x496ce0]
and eax, 0x2925c78c
mov ecx, dword [0x495b68]
or ecx, eax
mov dword [0x495b68], ecx
mov eax, 0x20575034
mov ecx, dword [0x49971c]
or ecx, 0x15304041
mov dword [0x49971c], ecx
mov ecx, dword [0x495d1c]
mov edx, dword [0x497fac]
sub edx, ecx
mov dword [0x497fac], edx
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x80], ecx
mov ecx, dword [0x495184]
add ecx, 0x724fff53
xor ecx, 0xbf17e25b
cmp eax, ecx
jge 0x4023e7
mov eax, dword [0x495530]
not eax
add eax, 0xe3fd49dd
mov ecx, dword [0x499ecc]
sub ecx, eax
mov dword [0x499ecc], ecx
movzx eax, word [esp + 0x80]
mov dword [esp + 0x88], eax
mov cx, word [0x49d536]
movsx eax, cx
mov edx, dword [0x499ed0]
imul eax, edx
imul eax, eax, 0xa839fd4a
mov dword [0x499ed0], eax
movzx eax, word [esp + 0x82]
mov dword [esp + 0x84], eax
mov eax, dword [0x499624]
not eax
mov edx, dword [0x494ec0]
add edx, eax
mov dword [0x494ec0], edx
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xd4]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x84]
xor esi, esi
mov dword [esp + 0x58], edx
mov edx, esi
mov esi, dword [esp + 0x58]
div esi
mov dword [esp + 0x94], eax
mov eax, dword [0x494f4c]
imul eax, eax, 0xc350db30
mov dword [0x494f4c], eax
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xd4]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x94]
imul edx, esi
sub eax, edx
mov dword [esp + 0x8c], eax
mov cx, word [0x49dde6]
movsx eax, cx
add eax, 0xf5aa34fd
mov edx, dword [0x49857c]
sub edx, eax
mov dword [0x49857c], edx
mov eax, dword [esp + 0x8c]
shl eax, 0x10
mov dword [esp + 0x8c], eax
mov eax, dword [0x49abac]
dec eax
mov dword [0x49abac], eax
xor eax, 0x55f151a0
mov edx, dword [0x499634]
imul edx, eax
mov dword [0x499634], edx
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xd4]
movzx eax, word [edx + eax*4 - 2]
mov edx, dword [esp + 0x8c]
or edx, eax
mov dword [esp + 0x8c], edx
mov eax, dword [0x495df0]
imul eax, eax, 0x19e21192
add eax, 0x692b1939
mov edx, dword [0x49521c]
and edx, eax
mov dword [0x49521c], edx
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x88]
imul eax, edx
mov dword [esp + 0x7c], eax
mov eax, dword [0x49780c]
mov edx, eax
inc edx
mov dword [0x49780c], edx
add eax, 0xd012a0be
mov edx, dword [0x496d28]
cmp eax, edx
jge 0x40258b
mov eax, 0x91f59341
mov ecx, dword [0x499fc0]
cmp eax, ecx
jne 0x402586
mov eax, dword [0x49a208]
add eax, 0xa630d7c9
mov dword [0x49a208], eax
jmp 0x40258b
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x7c]
jae 0x4026a8
mov eax, 0xafffeeb2
mov ecx, dword [0x496414]
cmp eax, ecx
jg 0x4025be
mov dword [0x499f24], 0x24d30442
jmp 0x4025d6
mov eax, dword [0x4970a0]
add eax, 0x3b0a1800
mov ecx, dword [0x495918]
and ecx, eax
mov dword [0x495918], ecx
mov eax, dword [esp + 0x94]
dec eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x8c]
add ecx, eax
mov dword [esp + 0x8c], ecx
mov eax, dword [0x4966c8]
and eax, 0x7bff31ff
mov ecx, dword [0x498d88]
xor ecx, eax
not ecx
mov eax, dword [0x49844c]
add eax, ecx
mov dword [0x49844c], eax
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x80]
mov byte [esp + 0x57], cl
jb 0x40264a
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x7c]
setb cl
mov byte [esp + 0x57], cl
mov al, byte [esp + 0x57]
test al, 1
jne 0x40265b
jmp 0x402686
mov eax, dword [esp + 0x94]
add eax, 0xffffffff
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x8c]
mov dword [esp + 0x8c], eax
jmp 0x40261c
mov ax, word [0x49dcb6]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x49dcb6], ax
xor ecx, 0x72f8
mov ax, cx
mov word [0x49dfb4], ax
mov eax, 0x4020030
mov ecx, dword [0x498ce8]
or ecx, 0x80420900
mov dword [0x498ce8], ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
sub edx, ecx
mov dword [esp + 0x8c], edx
mov dword [0x498b3c], 0xf9dbefff
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x84]
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 + 0x98], eax
mov di, word [0x49dee0]
movsx eax, di
xor eax, 0xffffffff
mov ecx, dword [esp + 0x50]
cmp ecx, eax
je 0x402729
mov dword [0x4959b0], 0x9d49199
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x98]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x90], eax
mov eax, dword [0x495510]
imul eax, eax, 0x30b5376f
mov dword [0x495510], eax
mov eax, dword [esp + 0x90]
shl eax, 0x10
mov dword [esp + 0x90], eax
mov si, word [0x49e336]
mov ax, si
add eax, 0x87d77647
xor eax, 0x74e3
mov si, word [0x49dcca]
mov cx, si
or ecx, eax
mov si, cx
mov word [0x49dcca], si
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x90]
or ecx, eax
mov dword [esp + 0x90], ecx
mov eax, dword [0x499948]
mov ecx, eax
dec ecx
mov dword [0x499948], ecx
mov ecx, 0x8f71c9bd
sub ecx, eax
mov eax, dword [0x49549c]
or eax, ecx
mov dword [0x49549c], eax
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x88]
imul eax, ecx
mov dword [esp + 0x7c], eax
mov eax, dword [0x499564]
imul eax, eax, 0x41017241
mov dword [0x499564], eax
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x7c]
jae 0x402946
mov eax, 0x3f29b277
mov cx, word [0x49df8e]
movsx edx, cx
shl edx, 1
or edx, 0xa5dd0a4e
cmp eax, edx
jg 0x40284d
mov eax, dword [0x49abdc]
imul eax, eax, 0xd87a844b
or eax, 0xa4574466
mov ecx, dword [0x497b94]
sub ecx, eax
mov dword [0x497b94], ecx
mov eax, dword [esp + 0x98]
dec eax
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x90]
add ecx, eax
mov dword [esp + 0x90], ecx
mov eax, dword [0x496af0]
not eax
imul eax, eax, 0xab9a04fa
mov dx, word [0x49d350]
mov cx, dx
or eax, ecx
or eax, 0x83fe
mov dx, ax
mov word [0x49d350], dx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x80]
mov byte [esp + 0x4b], cl
jb 0x4028c9
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x7c]
setb cl
mov byte [esp + 0x4b], cl
mov al, byte [esp + 0x4b]
test al, 1
jne 0x4028da
jmp 0x402905
mov eax, dword [esp + 0x98]
add eax, 0xffffffff
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x90]
mov dword [esp + 0x90], eax
jmp 0x40289b
mov ax, word [0x49d50a]
movsx ecx, ax
shl ecx, 6
add ecx, 0xcdab4a06
or ecx, 0x34f78c9f
cmp ecx, 0x835e235b
je 0x402941
mov ax, word [0x49d340]
mov cx, ax
and ecx, 0x79be
mov ax, cx
mov word [0x49d340], ax
jmp 0x402946
mov eax, dword [0x49aa50]
or eax, 0xddc99afa
mov dword [0x49aa50], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x90]
sub ecx, eax
mov dword [esp + 0x90], ecx
mov eax, dword [0x497108]
imul eax, eax, 0x70f85dce
mov ecx, dword [0x4951a4]
inc ecx
mov dword [0x4951a4], ecx
and eax, ecx
mov ecx, dword [0x498c18]
imul ecx, eax
mov dword [0x498c18], ecx
mov eax, dword [esp + 0x94]
shl eax, 0x10
mov ecx, dword [esp + 0x98]
or eax, ecx
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xdc]
sub ecx, edx
mov edx, dword [esp + 0xbc]
mov dword [edx + ecx*4 - 4], eax
mov si, word [0x49c60c]
mov ax, si
xor eax, 0x6b
mov si, ax
mov word [0x49c60c], si
mov eax, dword [0x499ee0]
add eax, 0xd121a6d2
cmp eax, 0x432c6556
jl 0x402a16
mov ax, word [0x49d6be]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49d6be], ax
movsx ecx, ax
xor ecx, 0x1fccd7c0
mov edx, dword [0x49a5d4]
sub edx, ecx
mov dword [0x49a5d4], edx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xdc]
sub eax, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x496480]
xor eax, 0xdbfc4428
mov dword [0x496480], eax
lea eax, [esp + 0xa8]
xor ecx, ecx
mov edx, dword [0x49a4f8]
add edx, 0x8af73dee
mov dword [0x49a4f8], edx
mov edx, dword [esp + 0xe4]
mov esi, dword [esp + 0xdc]
sub edx, esi
mov esi, dword [esp + 0xbc]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x495fc4]
and edx, 0x83410824
mov dword [0x495fc4], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x44], ecx
call fcn.00416e80
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402abb
jmp 0x40331b
mov ax, word [0x49b4c0]
mov cx, ax
or ecx, 0x3dcb
mov ax, cx
mov word [0x49b4c0], ax
cmp dword [esp + 0xdc], 1
jge 0x402aec
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x402b04
mov eax, dword [esp + 0xdc]
sub eax, 1
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, 0xfc8e63d2
mov edx, dword [esp + 0xb0]
mov dword [edx], eax
mov eax, dword [0x49ab00]
mov si, word [0x49dece]
movsx edx, si
sar edx, 6
or eax, edx
cmp ecx, eax
je 0x402b5a
mov ax, word [0x49b808]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49b808], ax
mov ax, word [0x49d5e4]
mov dx, ax
imul edx, ecx
mov ax, dx
mov word [0x49d5e4], ax
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0xb0]
mov dword [edx + 4], ecx
mov ecx, dword [0x498aec]
or ecx, 0x992cd93c
mov dword [0x49adf0], ecx
mov ecx, dword [esp + 0xe4]
sub ecx, dword [esp + 0xdc]
sub ecx, 1
mov edx, dword [esp + 0xbc]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0042c800
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402bce
jmp 0x40331b
lea eax, [esp + 0x9c]
xor ecx, ecx
mov dx, word [0x49d0a0]
mov si, dx
mov edi, 0xc2e90603
sub edi, esi
mov dx, word [0x49d7c8]
mov si, dx
imul esi, edi
mov dx, si
mov word [0x49d7c8], dx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x3c], ecx
call fcn.00416e80
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402c28
jmp 0x40331b
mov eax, dword [0x4967fc]
add eax, 0xb17390d1
mov dword [0x4967fc], eax
cmp dword [esp + 0xe4], 2
jge 0x402c50
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x402c68
mov eax, dword [esp + 0xe4]
sub eax, 2
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xa4]
mov dword [ecx], eax
mov eax, dword [0x496814]
xor eax, 0x4a49473a
mov ecx, dword [0x494f10]
sub ecx, eax
mov dword [0x494f10], ecx
cmp dword [esp + 0xe4], 1
jge 0x402ca6
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x402cbe
mov eax, dword [esp + 0xe4]
sub eax, 1
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xa4]
mov dword [ecx + 4], eax
mov eax, dword [0x498e9c]
dec eax
mov dword [0x498e9c], eax
or eax, 0x29314c61
mov ecx, dword [0x494e98]
sub ecx, eax
mov dword [0x494e98], ecx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xd4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xa4]
mov dword [ecx + 8], eax
mov eax, dword [0x49a19c]
mov ecx, eax
inc ecx
mov dword [0x49a19c], ecx
mov ecx, dword [0x498328]
lea eax, [ecx + eax + 1]
mov dword [0x498328], eax
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00403670
cmp eax, 0
jg 0x402a45
lea eax, [esp + 0xa8]
lea ecx, [esp + 0xc0]
mov edx, dword [0x4970c0]
add edx, 0xd0a95da
mov dword [0x4970c0], edx
mov edx, dword [esp + 0xe4]
sub edx, dword [esp + 0xdc]
sub edx, 1
mov esi, dword [esp + 0xbc]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0042c800
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402da5
jmp 0x40331b
lea eax, [esp + 0xa8]
mov cx, word [0x49bd30]
movsx edx, cx
mov esi, dword [0x496e9c]
sub esi, edx
mov dword [0x496e9c], esi
mov edx, dword [esp + 0xe4]
sub edx, dword [esp + 0xdc]
sub edx, 1
shl edx, 5
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0042de30
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402df9
jmp 0x40331b
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xa8]
mov dx, word [0x49dbd8]
mov si, dx
imul esi, esi, 0x94020058
mov dx, si
mov word [0x49dbd8], dx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00416630
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402e46
jmp 0x40331b
lea eax, [esp + 0xcc]
xor ecx, ecx
mov edx, dword [0x49a1b8]
add edx, 0x3b2dcb6a
mov dword [0x49a1b8], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x30], ecx
call fcn.0040b9f0
cmp eax, 0
jge 0x403020
mov eax, dword [0x4981c4]
mov ecx, eax
inc ecx
mov dword [0x4981c4], ecx
xor eax, 0x154abbab
cmp eax, 0x68419e46
jne 0x402ecd
mov ax, word [0x49c1a4]
movsx ecx, ax
not ecx
mov edx, dword [0x4976f8]
mov esi, edx
inc esi
mov dword [0x4976f8], esi
imul ecx, edx
or ecx, 0x3ccb3d7a
mov edx, dword [0x496e50]
sub edx, ecx
mov dword [0x496e50], edx
lea eax, [esp + 0xa8]
lea ecx, [esp + 0xc0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043b190
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402efc
jmp 0x40331b
lea eax, [esp + 0xa8]
mov ecx, dword [0x495b10]
imul ecx, ecx, 0xf5fdff74
mov dword [0x495b10], ecx
mov ecx, dword [esp + 0xe4]
sub ecx, dword [esp + 0xdc]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042de30
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402f4a
jmp 0x40331b
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xa8]
mov edx, dword [0x4985cc]
sar edx, 6
add edx, 0xd06182f2
mov esi, dword [0x4961d0]
imul esi, edx
mov dword [0x4961d0], esi
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00411b00
mov dword [esp + 0xe8], eax
cmp eax, 0
je 0x402f9b
jmp 0x40331b
mov eax, 0x76020fd5
mov ecx, dword [0x496bf0]
sar ecx, 7
mov edx, dword [0x49ae84]
imul ecx, edx
sub ecx, 0x77b3282d
cmp eax, ecx
je 0x402fdb
mov ax, word [0x49e3ba]
movsx ecx, ax
sar ecx, 2
mov edx, dword [0x49ae24]
imul edx, ecx
mov dword [0x49ae24], edx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xdc]
sub eax, ecx
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x494f40]
add eax, 0x64d5c7f5
and eax, 0x6295
mov si, word [0x49dfda]
mov cx, si
or ecx, eax
mov si, cx
mov word [0x49dfda], si
mov eax, dword [0x49a840]
add eax, 0xb53363e0
mov ecx, dword [0x497c9c]
or eax, ecx
or eax, 0xe01d09ce
mov dword [0x497c9c], eax
mov eax, dword [esp + 0xe4]
add eax, 0xffffffff
mov dword [esp + 0xe4], eax
jmp 0x4022b0
mov ax, word [0x49bcd2]
mov cx, ax
add ecx, 0xfeefee66
mov ax, cx
mov word [0x49bcd2], ax
cmp dword [esp + 0xec], 0
je 0x403104
mov eax, dword [0x4988bc]
add eax, 0xf42020da
and eax, 0x6ab06a34
mov ecx, dword [0x496e04]
add ecx, eax
mov dword [0x496e04], ecx
mov eax, dword [esp + 0xec]
mov ecx, esp
lea edx, [esp + 0xb4]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0043b190
mov si, word [0x49c006]
movsx ecx, si
shr ecx, 1
imul ecx, ecx, 0x227e5e4f
or ecx, 0xfdc3823a
mov dword [0x49989c], ecx
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf8]
mov edx, dword [edx]
imul ecx, edx
mov edx, dword [esp + 0xec]
mov dword [edx], ecx
mov ecx, dword [0x494c78]
sar ecx, 1
mov edx, 0xde944e5d
sub edx, ecx
mov dword [0x49a180], edx
mov dword [esp + 0x2c], eax
mov eax, 0xaf2e4e18
mov ecx, dword [0x4954fc]
xor ecx, 0x94cdac1d
cmp eax, ecx
jg 0x40315b
mov eax, 0x3efedefa
mov ecx, dword [0x498148]
mov edx, ecx
inc edx
mov dword [0x498148], edx
mov edx, dword [0x49a968]
sub ecx, edx
sub ecx, 0x3cf25238
cmp eax, ecx
je 0x403156
mov eax, dword [0x49554c]
and eax, 0x5b88163e
mov dword [0x49897c], eax
jmp 0x40315b
cmp dword [esp + 0xf0], 0
je 0x4032f9
mov eax, 0xcf7c3d3e
mov ecx, dword [0x496404]
imul ecx, ecx, 0x1e5b96b2
mov dword [0x496404], ecx
mov ecx, dword [esp + 0xd8]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xcc]
mov dword [edx], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
call fcn.00417130
mov ecx, dword [0x494c58]
mov edx, 0xd5f28277
sub edx, ecx
mov ecx, dword [0x499150]
or ecx, edx
mov dword [0x499150], ecx
mov ecx, dword [esp + 0xf0]
mov edx, esp
mov esi, dword [esp + 0x24]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x20], eax
call fcn.0043b190
mov ecx, dword [0x4978bc]
mov edx, ecx
inc edx
mov dword [0x4978bc], edx
and ecx, 0x6250ca3d
mov edx, dword [0x4959c0]
sar edx, 8
xor ecx, edx
mov edx, dword [esp + 0x28]
cmp edx, ecx
mov dword [esp + 0x1c], eax
jg 0x403224
mov ax, word [0x49d3ae]
movsx ecx, ax
mov edx, dword [0x49796c]
sub edx, ecx
mov dword [0x49796c], edx
jmp 0x40326c
mov eax, 0x800480
mov cx, word [0x49ce88]
movsx edx, cx
and edx, 0xccd0b383
cmp eax, edx
jge 0x40325e
mov eax, 0xc5724791
mov ecx, dword [0x4971cc]
cmp eax, ecx
je 0x403259
jmp 0x403259
jmp 0x403267
mov word [0x49d604], 0x18e2
jmp 0x40326c
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf0]
mov dword [edx], ecx
mov ecx, dword [0x49971c]
sar ecx, 6
mov edx, dword [0x495e8c]
sub edx, ecx
mov dword [0x495e8c], edx
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.0040b9f0
cmp eax, 0
jne 0x4032c8
mov eax, dword [esp + 0xf0]
mov dword [eax], 1
mov ax, word [0x49c462]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x49c462], dx
movsx ecx, ax
imul ecx, ecx, 0x3e98a5ba
add ecx, 0x7240fbd9
mov esi, dword [0x4983b8]
sub esi, ecx
mov dword [0x4983b8], esi
mov eax, dword [0x49a1e0]
mov ecx, eax
inc ecx
mov dword [0x49a1e0], ecx
or eax, 0x209b10dc
mov ecx, dword [0x49a1c0]
imul ecx, eax
mov dword [0x49a1c0], ecx
mov eax, esp
lea ecx, [esp + 0x9c]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa8]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xcc]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0041ed10
mov eax, dword [0x4999ec]
sar eax, 9
mov ecx, dword [0x49aca8]
mov edx, ecx
inc edx
mov dword [0x49aca8], edx
add eax, ecx
mov ecx, dword [0x498d24]
and eax, ecx
mov ecx, dword [0x496148]
and ecx, eax
mov dword [0x496148], ecx
mov eax, dword [esp + 0xe8]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xfc]
add esp, 0x100
pop esi
pop edi
ret