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

Disassembly:
push edi
push esi
sub esp, 0xf4
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x108]
mov edx, dword [esp + 0x104]
mov esi, dword [esp + 0x100]
mov edi, 0x77e124a8
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe0], esi
mov eax, dword [0x499a18]
mov ecx, eax
dec ecx
mov dword [0x499a18], ecx
sub eax, 0x951a724d
cmp edi, eax
je 0x4116ff
mov eax, 0xa8c347f1
mov cx, word [0x4942fe]
mov dx, cx
inc edx
mov cx, dx
mov word [0x4942fe], cx
movsx edx, cx
and edx, 0x23ec380f
cmp eax, edx
je 0x4116fa
mov eax, dword [0x4986b0]
xor eax, 0x9019aee
mov dword [0x4986b0], eax
jmp 0x4116ff
mov eax, dword [0x49c880]
xor eax, 0xbf248920
cmp eax, 0xd40f4f3a
jle 0x41173f
mov eax, dword [0x49c5a0]
dec eax
mov dword [0x49c5a0], eax
xor eax, 0xc044
mov cx, word [0x492bec]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x492bec], cx
jmp 0x411757
mov ax, word [0x49370e]
mov cx, ax
imul ecx, ecx, 0x282c052
mov ax, cx
mov word [0x49370e], ax
mov eax, dword [0x498a98]
sar eax, 1
xor eax, 0x81500084
cmp eax, 0xc6336a3
je 0x4117c0
mov eax, dword [0x498fec]
shl eax, 4
xor eax, 0x2020
or eax, 0x5b3ddd1f
mov ecx, dword [0x494a38]
imul ecx, ecx, 0x8b541228
cmp eax, ecx
jl 0x4117bb
mov ax, word [0x4918ce]
movsx ecx, ax
shr ecx, 7
add ecx, 0x73436424
mov ax, word [0x494308]
mov dx, ax
and edx, ecx
mov ax, dx
mov word [0x494308], ax
jmp 0x4117c0
xor eax, eax
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x6c], eax
call fcn.00451220
cmp eax, 0
jne 0x4117f6
mov dword [esp + 0xf0], 0xfffffff4
jmp 0x413247
mov eax, dword [0x49b788]
mov ecx, dword [0x49c810]
add ecx, ecx
and ecx, 0x5a020a9a
xor eax, ecx
mov ecx, dword [0x49caf0]
xor ecx, eax
mov dword [0x49caf0], ecx
mov eax, esp
lea ecx, [esp + 0x90]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x9c]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xa8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc0]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0044e810
mov eax, dword [0x495b28]
imul eax, eax, 0x7b76efff
mov dword [0x495b28], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0044b060
cmp eax, 0
jge 0x411a25
mov eax, dword [0x495578]
cmp eax, 0xfe14f1d9
jl 0x4118af
mov eax, dword [0x49a120]
and eax, 0xe7300d9e
mov dword [0x49a120], eax
jmp 0x4118c8
mov eax, dword [0x4971c0]
imul eax, eax, 0x109ad988
mov ecx, dword [0x49a0a8]
and ecx, eax
mov dword [0x49a0a8], ecx
cmp dword [esp + 0xe0], 0
je 0x41190d
xor eax, eax
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
call fcn.00451770
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411908
jmp 0x4131d7
jmp 0x41190d
mov eax, dword [0x498580]
shl eax, 0xa
mov ecx, dword [0x497d3c]
and ecx, eax
mov dword [0x497d3c], ecx
cmp dword [esp + 0xe4], 0
je 0x411965
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0043dd90
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411960
jmp 0x4131d7
jmp 0x411965
mov eax, 0x21fd1b56
mov cx, word [0x491252]
mov dx, cx
inc edx
mov si, dx
mov word [0x491252], si
movsx edx, cx
and edx, 0x58a00105
and edx, 0xfb4a044
cmp eax, edx
jg 0x411a15
mov eax, 0xf9454cbf
mov ecx, dword [0x496a94]
mov edx, ecx
dec edx
mov dword [0x496a94], edx
mov edx, dword [0x49c4d0]
dec edx
mov dword [0x49c4d0], edx
mov esi, dword [0x499f68]
add edx, esi
and ecx, edx
cmp eax, ecx
jge 0x4119e6
mov ax, word [0x493d72]
mov cx, ax
xor ecx, 0x4444
mov ax, cx
mov word [0x493d72], ax
jmp 0x411a10
mov ax, word [0x4908aa]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4908aa], ax
movsx ecx, ax
add ecx, 0x98812bdc
mov edx, dword [0x49bdc8]
or edx, ecx
mov dword [0x49bdc8], edx
jmp 0x411a15
mov dword [esp + 0xf0], 0
jmp 0x413247
lea eax, [esp + 0xc0]
mov ecx, dword [0x4946ac]
and ecx, 0x7298e76c
mov dword [0x4946ac], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043dd90
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411a66
jmp 0x4131d7
lea eax, [esp + 0xb4]
mov ecx, dword [0x49b328]
mov edx, dword [0x49be4c]
dec edx
mov dword [0x49be4c], edx
imul ecx, edx
mov si, word [0x491d3a]
mov dx, si
imul ecx, edx
imul ecx, ecx, 0x7f746c37
mov si, cx
mov word [0x491d3a], si
mov ecx, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043dd90
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411ac8
jmp 0x4131d7
lea eax, [esp + 0xa8]
mov ecx, dword [0x49bb30]
or ecx, 0x275296e0
mov dword [0x49bb30], ecx
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 1
mov ecx, dword [0x498734]
xor ecx, 0xa075f084
mov dword [0x498734], ecx
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00450de0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411b37
jmp 0x4131d7
lea eax, [esp + 0xa8]
xor ecx, ecx
mov dword [0x495ddc], 0xc22197f7
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x64], ecx
call fcn.00451770
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411b73
jmp 0x4131d7
lea eax, [esp + 0x9c]
mov ecx, 2
mov edx, dword [0x496e10]
xor edx, 0x20808800
mov dword [0x496e10], edx
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x60], ecx
call fcn.00450de0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411bba
jmp 0x4131d7
lea eax, [esp + 0x90]
mov ecx, 3
mov dx, word [0x492da4]
movsx esi, dx
mov edi, dword [0x4977e4]
imul edi, esi
mov dword [0x4977e4], edi
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x5c], ecx
call fcn.00450de0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411c08
jmp 0x4131d7
mov eax, 0x56ea8610
mov cx, word [0x493cbe]
movsx edx, cx
or edx, 0x54b13b5f
cmp eax, edx
jne 0x411c50
mov eax, 0xacbd393b
mov ecx, dword [0x495224]
shl ecx, 0xa
cmp eax, ecx
jle 0x411c4b
mov eax, dword [0x495f84]
imul eax, eax, 0x38a565e0
mov dword [0x495f84], eax
jmp 0x411c50
mov eax, esp
lea ecx, [esp + 0xb4]
mov dword [eax], ecx
call fcn.0041a4c0
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xcc], eax
mov eax, dword [0x49c0f0]
mov ecx, eax
inc ecx
mov dword [0x49c0f0], ecx
mov ecx, dword [0x499bd0]
xor ecx, eax
mov dword [0x499bd0], ecx
cmp dword [esp + 0xcc], 0x1f
jge 0x411d9d
lea eax, [esp + 0xc0]
mov ecx, dword [0x495aac]
imul ecx, ecx, 0x7726da70
mov dx, cx
mov word [0x490886], dx
mov ecx, dword [esp + 0xcc]
mov esi, 0x1f
sub esi, ecx
mov dword [esp + 0xcc], esi
mov ecx, dword [0x495bd4]
shl ecx, 9
mov esi, dword [0x49a084]
or esi, ecx
mov dword [0x49a084], esi
mov ecx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042f730
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411d13
jmp 0x4131d7
lea eax, [esp + 0xb4]
mov ecx, dword [0x494674]
add ecx, 0x59a5b5c4
mov dword [0x494674], ecx
mov ecx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042f730
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x411d54
jmp 0x4131d7
mov eax, 0x23908307
mov cx, word [0x4929f0]
mov dx, cx
inc edx
mov cx, dx
mov word [0x4929f0], cx
movsx edx, cx
cmp eax, edx
jne 0x411d98
mov eax, dword [0x49b31c]
cmp eax, 0x59ddaba2
jne 0x411d93
mov dword [0x499678], 0x7ba7eef5
jmp 0x411d98
jmp 0x411da8
mov dword [esp + 0xcc], 0
mov eax, dword [0x495f0c]
and eax, 0xc74d8f7d
mov ecx, dword [0x497b48]
mov edx, ecx
inc edx
mov dword [0x497b48], edx
xor eax, ecx
cmp eax, 0x156347e3
jg 0x411df5
mov eax, dword [0x4957fc]
mov ecx, eax
inc ecx
mov dword [0x4957fc], ecx
imul eax, eax, 0x83ce5ae9
and eax, 0xad1ecf2e
mov ecx, dword [0x4974a4]
or ecx, eax
mov dword [0x4974a4], ecx
mov eax, dword [esp + 0xc4]
dec eax
mov dword [esp + 0xd4], eax
mov eax, dword [0x4999e4]
imul eax, eax, 0x841bbdb2
mov dword [0x4999e4], eax
mov eax, dword [esp + 0xb8]
dec eax
mov dword [esp + 0xd0], eax
mov eax, dword [0x49b940]
imul eax, eax, 0xe1a0dc00
xor eax, 0xbeea5279
mov ecx, dword [0x496320]
sub ecx, eax
mov dword [0x496320], ecx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xb4]
mov dword [ecx], eax
call fcn.0042f730
mov dx, word [0x491d1e]
movsx ecx, dx
add ecx, 0x2c24c8f1
and ecx, 0x89f8a273
mov esi, dword [0x4982f4]
sub esi, ecx
mov dword [0x4982f4], esi
mov dword [esp + 0x58], eax
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00445150
cmp eax, 0
jl 0x411f56
mov eax, dword [0x496004]
mov ecx, dword [0x49a7dc]
mov edx, ecx
inc edx
mov dword [0x49a7dc], edx
imul eax, ecx
or eax, 0x74fb19ec
mov ecx, dword [0x4988b4]
xor ecx, eax
mov dword [0x4988b4], ecx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
sub eax, ecx
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov eax, dword [0x495e38]
or eax, 0xdb54b8c2
cmp eax, 0xbd8ff8fc
jge 0x411f1e
mov eax, dword [0x49aec0]
and eax, 0x991827bb
mov dword [0x49aec0], eax
mov eax, esp
lea ecx, [esp + 0xb4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc0]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00449c80
mov ecx, dword [0x4979a0]
add ecx, 0xd39a2c17
mov dword [0x4979a0], ecx
mov dword [esp + 0x54], eax
jmp 0x411e8f
mov ax, word [0x490c66]
mov cx, ax
or ecx, 0xe3e3
mov ax, cx
mov word [0x490c66], ax
mov ecx, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
sub ecx, edx
shl ecx, 5
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xb4]
mov dword [edx], ecx
call fcn.0040ef30
mov ecx, dword [0x49a8fc]
or ecx, 0xbfe814a6
mov dword [0x49a8fc], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xd8], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xd8]
cmp eax, dword [esp + 0xd0]
jle 0x412f64
mov eax, dword [0x49aec4]
inc eax
mov dword [0x49aec4], eax
imul eax, eax, 0xb15fb406
cmp eax, 0xfbf7df7d
jg 0x411ffb
mov eax, dword [0x4965c8]
mov ecx, dword [0x4946d0]
sub ecx, eax
mov dword [0x4946d0], ecx
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xbc]
cmp eax, dword [edx + ecx*4]
jb 0x412047
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0xd0]
sub eax, 1
mov ecx, dword [esp + 0xb0]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x41280d
mov eax, 0x5e3b522c
mov ecx, dword [0x499784]
or ecx, 0x209c910f
mov dword [0x499784], ecx
mov dword [0x4990fc], 0xe7dfffbe
mov ecx, dword [0x496b58]
mov edx, ecx
dec edx
mov dword [0x496b58], edx
cmp eax, ecx
je 0x4120bf
mov eax, 0xe7fdfdf8
mov ecx, dword [0x494e0c]
sub ecx, 0xcd63bd5f
cmp eax, ecx
jle 0x4120ba
mov eax, dword [0x49c1d4]
mov ecx, eax
inc ecx
mov dword [0x49c1d4], ecx
xor eax, 0x6fbecb71
mov ecx, dword [0x49c1f0]
imul ecx, eax
mov dword [0x49c1f0], ecx
jmp 0x4120bf
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x74], eax
mov dx, word [0x490f72]
movsx eax, dx
xor eax, 0xcb986487
mov dword [0x49b634], eax
movzx eax, word [esp + 0x74]
mov dword [esp + 0x7c], eax
mov eax, dword [0x49c0f4]
imul eax, eax, 0x7004ade7
mov dword [0x49c0f4], eax
movzx eax, word [esp + 0x76]
mov dword [esp + 0x78], eax
mov dx, word [0x493c8e]
movsx eax, dx
mov ecx, dword [0x49bc4c]
dec ecx
mov dword [0x49bc4c], ecx
imul eax, ecx
and eax, 0x962af076
cmp eax, 0xe1eff9ab
jle 0x412173
mov eax, dword [0x499ed4]
mov ecx, dword [0x495290]
or eax, ecx
mov ecx, dword [0x49aba4]
sar ecx, 8
cmp eax, ecx
jge 0x41216e
mov eax, dword [0x49ca20]
shl eax, 8
and eax, 0x1533a500
mov ecx, dword [0x495624]
imul ecx, eax
mov dword [0x495624], ecx
jmp 0x412182
mov eax, dword [0x4973a4]
add eax, 0xdf870512
mov dword [0x4973a4], eax
mov eax, 0x8a16d08f
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x78]
xor esi, esi
mov dword [esp + 0x4c], eax
mov eax, ecx
mov dword [esp + 0x48], edx
mov edx, esi
mov ecx, dword [esp + 0x48]
div ecx
mov dword [esp + 0x88], eax
mov di, word [0x4938f4]
movsx eax, di
shl eax, 2
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jne 0x41224f
mov eax, dword [0x4953c0]
add eax, 0x81f7061b
mov cx, word [0x492db8]
mov dx, cx
inc edx
mov si, dx
mov word [0x492db8], si
movsx edx, cx
imul edx, edx, 0x218eb04b
or edx, 0xec8cfd2f
cmp eax, edx
jle 0x412232
mov eax, dword [0x496140]
imul eax, eax, 0x43459733
or eax, 0x2e8d
mov cx, word [0x4918b8]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4918b8], cx
jmp 0x41224a
mov ax, word [0x490f8e]
mov cx, ax
or ecx, 0x6e50
mov ax, cx
mov word [0x490f8e], ax
jmp 0x412267
mov ax, word [0x49419c]
mov cx, ax
add ecx, 0xb1bfefb8
mov ax, cx
mov word [0x49419c], ax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x88]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x80], eax
mov si, word [0x491330]
movsx eax, si
mov si, word [0x490788]
movsx ecx, si
sar ecx, 7
and eax, ecx
xor eax, 0x195598c2
mov ecx, dword [0x49b6c0]
and ecx, eax
mov dword [0x49b6c0], ecx
mov eax, dword [esp + 0x80]
shl eax, 0x10
mov dword [esp + 0x80], eax
mov eax, dword [0x499da0]
shl eax, 4
add eax, 0x43c33d50
and eax, 0x1b11e5e0
mov ecx, dword [0x4992f8]
and ecx, 0x82498b36
cmp eax, ecx
jge 0x412349
mov ax, word [0x491aea]
movsx ecx, ax
imul ecx, ecx, 0xb9643647
and ecx, 0x9843605c
cmp ecx, 0x6dfff3b9
jg 0x412327
mov eax, dword [0x4976bc]
add eax, 0x29404bba
mov dword [0x4976bc], eax
jmp 0x412344
mov eax, 0xa08178c
mov ecx, dword [0x49a344]
cmp eax, ecx
jg 0x41233f
jmp 0x41233f
jmp 0x412344
jmp 0x41236c
mov ax, word [0x491cd6]
movsx ecx, ax
imul ecx, ecx, 0x46562320
add ecx, 0x4e4b84d2
mov edx, dword [0x49bfcc]
sub edx, ecx
mov dword [0x49bfcc], edx
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x80]
or ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x498620]
mov ecx, eax
dec ecx
mov dword [0x498620], ecx
and eax, 0x7ed68d0
cmp eax, 0xbcfe0d52
jl 0x4123d6
mov ax, word [0x490b60]
movsx ecx, ax
imul ecx, ecx, 0xa92ccd55
neg ecx
mov edx, dword [0x496f5c]
lea ecx, [edx + ecx - 0x309f0e02]
mov dword [0x496f5c], ecx
jmp 0x4123e5
mov eax, dword [0x497028]
and eax, 0xf314970a
mov dword [0x497028], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov dx, word [0x493ea0]
mov ax, dx
mov dx, word [0x492362]
mov cx, dx
inc ecx
mov dx, cx
mov word [0x492362], dx
sub eax, ecx
and eax, 0x548c
mov dx, word [0x493c46]
mov cx, dx
or ecx, eax
mov dx, cx
mov word [0x493c46], dx
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
jae 0x41250e
mov eax, dword [0x494f94]
imul eax, eax, 0xa9e15224
mov dword [0x494f94], eax
mov eax, dword [esp + 0x88]
dec eax
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x80]
add ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x49a6a8]
mov ecx, eax
inc ecx
mov dword [0x49a6a8], ecx
mov dx, word [0x491076]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x491076], dx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x47], cl
jb 0x4124c6
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
setb cl
mov byte [esp + 0x47], cl
mov al, byte [esp + 0x47]
test al, 1
jne 0x4124d7
jmp 0x4124ff
mov eax, dword [esp + 0x88]
add eax, 0xffffffff
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
jmp 0x41249b
mov eax, dword [0x49bd04]
or eax, 0x83c677da
mov dword [0x49bd04], eax
mov eax, dword [0x494ae0]
imul eax, eax, 0x2732a4cc
mov dword [0x494ae0], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x495318]
dec eax
mov dword [0x495318], eax
mov dword [0x495e54], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
xor edx, edx
div ecx
mov dword [esp + 0x8c], eax
mov dword [0x4949cc], 0x846c9ee6
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x8c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x84], eax
mov eax, dword [0x4962e0]
inc eax
mov dword [0x4962e0], eax
mov ecx, dword [0x49cb04]
shl ecx, 3
xor eax, ecx
mov ecx, dword [0x498644]
dec ecx
mov dword [0x498644], ecx
and ecx, 0x2fccd489
cmp eax, ecx
jg 0x4125ce
mov ax, word [0x4944ac]
mov cx, ax
imul ecx, ecx, 0x2b7eeebf
mov ax, cx
mov word [0x4944ac], ax
jmp 0x4125e6
mov ax, word [0x4906de]
mov cx, ax
add ecx, 0x3bace493
mov ax, cx
mov word [0x4906de], ax
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov dword [esp + 0x84], eax
mov eax, dword [0x4967e4]
xor eax, 0xac63ccbe
mov dword [0x4967e4], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x84]
or ecx, eax
mov dword [esp + 0x84], ecx
mov dx, word [0x490f9e]
movsx eax, dx
or eax, 0xdedf82cb
mov ecx, dword [0x497cb4]
imul ecx, eax
mov dword [0x497cb4], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [0x499138]
shr eax, 6
xor eax, 0x1834
or eax, 0x6343
mov dx, ax
mov word [0x492c36], dx
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x70]
jae 0x412763
mov eax, 0x3f2396ff
mov ecx, dword [0x4955e8]
or ecx, 0xe50cb85e
mov dword [0x4955e8], ecx
mov ecx, dword [esp + 0x8c]
dec ecx
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x84]
add edx, ecx
mov dword [esp + 0x84], edx
mov si, word [0x491562]
movsx ecx, si
imul ecx, ecx, 0xd1d35a81
cmp eax, ecx
jl 0x4126ea
mov ax, word [0x49265a]
movsx ecx, ax
shl ecx, 5
mov dword [0x4969b0], ecx
jmp 0x4126ef
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x46], cl
jb 0x41271a
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x70]
setb cl
mov byte [esp + 0x46], cl
mov al, byte [esp + 0x46]
test al, 1
jne 0x41272b
jmp 0x412753
mov eax, dword [esp + 0x8c]
add eax, 0xffffffff
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x84]
mov dword [esp + 0x84], eax
jmp 0x4126ef
mov eax, dword [0x49c0e8]
imul eax, eax, 0x9d590ec4
mov dword [0x49c0e8], eax
mov eax, dword [0x49b804]
inc eax
mov dword [0x49b804], eax
mov ecx, dword [0x496760]
dec ecx
mov dword [0x496760], ecx
add eax, ecx
or eax, 0x2ee11a2a
mov ecx, dword [0x49bf00]
xor ecx, eax
mov dword [0x49bf00], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x84], ecx
mov dx, word [0x491802]
mov ax, dx
dec eax
mov dx, ax
mov word [0x491802], dx
movsx eax, dx
imul eax, eax, 0x2088ea3e
mov ecx, dword [0x49b834]
sub ecx, eax
mov dword [0x49b834], ecx
mov eax, dword [esp + 0x88]
shl eax, 0x10
mov ecx, dword [esp + 0x8c]
or eax, ecx
mov ecx, dword [esp + 0xd8]
mov esi, dword [esp + 0xd0]
sub ecx, esi
mov esi, dword [esp + 0xb0]
mov dword [esi + ecx*4 - 4], eax
mov eax, dword [0x496568]
mov dx, ax
mov word [0x493624], dx
mov ax, word [0x4921e4]
mov cx, ax
shl ecx, 0xa
mov edx, dword [0x4973f0]
mov esi, edx
dec esi
mov dword [0x4973f0], esi
add edx, 0xbc7bdb75
or ecx, edx
mov ax, cx
mov word [0x491ae4], ax
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
sub ecx, edx
mov edx, dword [esp + 0xb0]
mov esi, dword [edx + ecx*4 - 4]
inc esi
mov dword [edx + ecx*4 - 4], esi
mov ecx, dword [0x4990c0]
not ecx
mov edx, dword [0x495110]
imul ecx, edx
and ecx, 0x87529d09
cmp ecx, 0xd175798a
je 0x4128c6
mov eax, dword [0x49a030]
mov ecx, eax
inc ecx
mov dword [0x49a030], ecx
add eax, 0xe8e852c0
mov ecx, dword [0x49bc80]
mov edx, ecx
inc edx
mov dword [0x49bc80], edx
cmp eax, ecx
jne 0x4128c1
mov eax, dword [0x496b28]
sar eax, 7
xor eax, 0xde8f7849
mov ecx, dword [0x496afc]
add ecx, eax
mov dword [0x496afc], ecx
jmp 0x4128c6
jmp 0x4128cb
lea eax, [esp + 0x9c]
xor ecx, ecx
mov edx, dword [0x49b9e4]
or edx, 0xd3aae56e
mov dword [0x49b9e4], edx
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0xd0]
sub edx, esi
mov esi, dword [esp + 0xb0]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x497ce8]
add edx, 0x48472dc5
mov dword [0x497ce8], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.00451770
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412941
jmp 0x4131d7
mov eax, dword [0x49c7f4]
add eax, 0xb61d494b
mov dword [0x49c7f4], eax
cmp dword [esp + 0xd0], 1
jge 0x412969
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x412981
mov eax, dword [esp + 0xd0]
sub eax, 1
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov ecx, 0xc5efd496
mov edx, dword [esp + 0xa4]
mov dword [edx], eax
mov si, word [0x494366]
movsx eax, si
mov edx, dword [0x49c31c]
imul edx, eax
mov dword [0x49c31c], edx
mov eax, dword [esp + 0xd0]
mov edx, dword [esp + 0xbc]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0xa4]
mov dword [edx + 4], eax
mov si, word [0x4936e4]
mov ax, si
dec eax
mov di, ax
mov word [0x4936e4], di
movsx eax, si
xor eax, 0x937dc18e
cmp ecx, eax
jne 0x412a47
mov eax, 0x1d7d3f7e
mov ecx, dword [0x49bdb4]
mov edx, ecx
dec edx
mov dword [0x49bdb4], edx
cmp eax, ecx
jne 0x412a25
mov eax, dword [0x4988c0]
and eax, 0x4f6d4458
mov ecx, dword [0x49aa4c]
add ecx, eax
mov dword [0x49aa4c], ecx
jmp 0x412a42
mov eax, 0x22e2b97d
mov ecx, dword [0x497618]
cmp eax, ecx
jg 0x412a3d
jmp 0x412a3d
jmp 0x412a42
jmp 0x412a67
mov eax, dword [0x497708]
mov cx, word [0x4935f6]
mov dx, cx
xor eax, edx
xor eax, 0x938f
mov cx, ax
mov word [0x4935f6], cx
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0xd8]
sub ecx, dword [esp + 0xd0]
sub ecx, 1
mov edx, dword [esp + 0xb0]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00425f60
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412aae
jmp 0x4131d7
mov eax, 0xaff5d7ec
mov ecx, dword [0x49c8fc]
cmp eax, ecx
jge 0x412ad5
mov eax, dword [0x498f68]
add eax, 0x50402e11
mov dword [0x498f68], eax
jmp 0x412ae5
mov eax, dword [0x498368]
imul eax, eax, 0xc4a184a6
mov dword [0x498368], eax
lea eax, [esp + 0x90]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.00451770
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412b17
jmp 0x4131d7
mov eax, dword [0x4975a8]
xor eax, 0xb0212d05
mov dword [0x4975a8], eax
cmp dword [esp + 0xd8], 2
jge 0x412b3f
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x412b57
mov eax, dword [esp + 0xd8]
sub eax, 2
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x98]
mov dword [ecx], eax
mov eax, dword [0x498440]
not eax
imul eax, eax, 0x62c333ef
mov ecx, 0x241326aa
sub ecx, eax
mov eax, dword [0x499644]
mov edx, eax
inc edx
mov dword [0x499644], edx
or eax, 0xdd6f5b6f
cmp ecx, eax
jne 0x412bab
mov ax, word [0x49330e]
mov cx, ax
add ecx, 0x47f3c739
mov ax, cx
mov word [0x4919ae], ax
cmp dword [esp + 0xd8], 1
jge 0x412bc4
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x412bdc
mov eax, dword [esp + 0xd8]
sub eax, 1
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x98]
mov dword [ecx + 4], eax
mov eax, dword [0x49bf0c]
add eax, 0x6b697432
mov dword [0x49bf0c], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x98]
mov dword [ecx + 8], eax
mov eax, dword [0x49715c]
mov ecx, dword [0x497a74]
mov edx, dword [0x49a20c]
and ecx, edx
or eax, ecx
cmp eax, 0x50bc477b
je 0x412c51
mov ax, word [0x494588]
movsx ecx, ax
imul ecx, ecx, 0x390aae22
mov edx, dword [0x495378]
and edx, ecx
mov dword [0x495378], edx
jmp 0x412c56
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00445150
cmp eax, 0
jg 0x4128cb
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x496b98]
sar edx, 7
mov esi, dword [0x496b48]
sub edx, esi
and edx, 0x9c88ece5
mov esi, dword [0x498994]
sub esi, edx
mov dword [0x498994], esi
mov edx, dword [esp + 0xd8]
sub edx, dword [esp + 0xd0]
sub edx, 1
mov esi, dword [esp + 0xb0]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00425f60
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412cec
jmp 0x4131d7
lea eax, [esp + 0x9c]
mov ecx, dword [0x496454]
imul ecx, ecx, 0x9e9791d1
mov dword [0x496454], ecx
mov ecx, dword [esp + 0xd8]
sub ecx, dword [esp + 0xd0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042f730
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412d3a
jmp 0x4131d7
mov eax, dword [0x49c028]
imul eax, eax, 0x520ccc80
add eax, 0xdc3c06d6
mov ecx, dword [0x497648]
mov edx, ecx
dec edx
mov dword [0x497648], edx
and ecx, 0x31026014
cmp eax, ecx
jl 0x412d71
mov dword [0x497cd8], 0x516ca17d
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00449c80
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412da4
jmp 0x4131d7
lea eax, [esp + 0xc0]
xor ecx, ecx
mov dx, word [0x49154c]
movsx esi, dx
mov edi, dword [0x49bb00]
and esi, edi
mov edi, dword [0x49b1a0]
xor esi, edi
xor esi, 0x94cabf86
mov dword [0x49b1a0], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.00451220
cmp eax, 0
jge 0x412f31
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x49aa1c]
mov esi, 0xfda43b4f
sub esi, edx
mov edx, dword [0x4949ec]
sub edx, esi
mov dword [0x4949ec], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043dd90
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412e3a
jmp 0x4131d7
lea eax, [esp + 0x9c]
mov dword [0x49a674], 0xf643c2b7
mov ecx, dword [esp + 0xd8]
sub ecx, dword [esp + 0xd0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0042f730
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412e80
jmp 0x4131d7
mov eax, 0x48121a03
mov ecx, dword [0x498f3c]
mov edx, ecx
dec edx
mov dword [0x498f3c], edx
and ecx, 0x7d0207e8
cmp eax, ecx
je 0x412eba
mov ax, word [0x49162c]
mov cx, ax
add ecx, 0x6ee5b020
mov ax, cx
mov word [0x49162c], ax
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004281a0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x412eed
jmp 0x4131d7
mov ax, word [0x493a14]
movsx ecx, ax
shl ecx, 5
mov dword [0x496484], ecx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
sub ecx, edx
mov edx, dword [esp + 0xb0]
mov esi, dword [edx + ecx*4 - 4]
dec esi
mov dword [edx + ecx*4 - 4], esi
mov ecx, dword [0x49b7e4]
xor ecx, 0x90ae7753
mov dword [0x49b7e4], ecx
mov ax, word [0x490ad4]
movsx ecx, ax
and ecx, 0xd905d5bc
mov edx, dword [0x49c02c]
xor edx, ecx
mov dword [0x49c02c], edx
mov eax, dword [esp + 0xd8]
add eax, 0xffffffff
mov dword [esp + 0xd8], eax
jmp 0x411fb8
mov eax, dword [0x497b78]
dec eax
mov dword [0x497b78], eax
mov cx, word [0x492c52]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x492c52], cx
cmp dword [esp + 0xe0], 0
je 0x41309e
mov eax, 0xf2bdfcbf
mov ecx, dword [0x494b68]
xor ecx, 0x35ee9017
cmp eax, ecx
jg 0x412fe3
mov eax, dword [0x495ff8]
dec eax
mov dword [0x495ff8], eax
xor eax, 0x3c8abeef
cmp eax, 0xed0296b1
je 0x412fde
mov eax, dword [0x49a54c]
mov ecx, dword [0x49ab94]
lea eax, [eax + ecx - 0x74727b94]
mov dword [0x49ab94], eax
jmp 0x413022
mov eax, 0x186cec71
mov ecx, dword [0x495994]
cmp eax, ecx
je 0x413005
mov dword [0x49617c], 0xb8a4fbe0
jmp 0x41301d
mov ax, word [0x492746]
mov cx, ax
add ecx, 0x1b020d42
mov ax, cx
mov word [0x492746], ax
jmp 0x413022
mov eax, dword [esp + 0xe0]
mov ecx, esp
lea edx, [esp + 0xa8]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0043dd90
mov ecx, dword [0x495388]
add ecx, 0xee4e6f0a
and ecx, 0x70b2735f
mov edx, dword [0x495938]
xor edx, ecx
mov dword [0x495938], edx
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xec]
mov edx, dword [edx]
imul ecx, edx
mov edx, dword [esp + 0xe0]
mov dword [edx], ecx
mov ecx, dword [0x4958e0]
imul ecx, ecx, 0x9853d40
or ecx, 0x9044c4b3
mov edx, dword [0x49a064]
and edx, ecx
mov dword [0x49a064], edx
mov dword [esp + 0x28], eax
mov eax, dword [0x49c000]
add eax, 0xfeffaafb
mov dword [0x49c000], eax
cmp dword [esp + 0xe4], 0
je 0x4131b7
xor eax, eax
mov ecx, dword [0x498b6c]
xor ecx, 0x1f4940f7
mov dword [0x498b6c], ecx
mov ecx, dword [esp + 0xcc]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xc0]
mov dword [edx], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
call fcn.0040ef30
mov si, word [0x4910d4]
mov cx, si
xor ecx, 0xa01a
mov si, cx
mov word [0x4910d4], si
mov ecx, dword [esp + 0xe4]
mov edx, esp
mov edi, dword [esp + 0x20]
mov dword [edx + 4], edi
mov dword [edx], ecx
mov dword [esp + 0x1c], eax
call fcn.0043dd90
mov ecx, dword [0x49480c]
imul ecx, ecx, 0xb89e5236
mov edx, dword [0x49c750]
sub edx, ecx
mov dword [0x49c750], edx
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe4]
mov dword [edx], ecx
mov ecx, dword [0x49b214]
mov edx, dword [0x499f04]
not edx
and ecx, edx
mov si, word [0x490c0e]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x490c0e], si
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.00451220
cmp eax, 0
jne 0x4131aa
mov eax, dword [esp + 0xe4]
mov dword [eax], 1
mov eax, dword [0x49663c]
shl eax, 9
mov dword [0x496fe4], eax
mov eax, dword [0x4978dc]
or eax, 0x3df9
mov cx, word [0x493486]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x493486], cx
mov eax, esp
lea ecx, [esp + 0x90]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0x9c]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xa8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xb4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc0]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0042bac0
mov dx, word [0x492546]
movsx eax, dx
not eax
add eax, 0xac6106a2
mov ecx, dword [0x49b214]
xor eax, ecx
xor eax, 0xdb18490
mov dword [0x49b214], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add esp, 0xf4
pop esi
pop edi
ret