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

Disassembly:
push ebx
push edi
push esi
sub esp, 0xf4
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0x108]
mov esi, dword [esp + 0x104]
mov edi, 0xb20e3870
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe0], esi
mov eax, dword [0x4988cc]
or eax, 0x99df78be
mov dword [0x4988cc], eax
mov eax, dword [0x494704]
mov ecx, eax
inc ecx
mov dword [0x494704], ecx
add eax, 0x782f039f
mov bx, ax
mov word [0x47fdf6], bx
mov eax, dword [0x49c1d0]
shl eax, 1
or eax, 0x4df21519
cmp edi, eax
jle 0x406287
mov eax, dword [0x48cbec]
imul eax, eax, 0x649eaad7
mov dword [0x48cbec], eax
xor eax, eax
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x6c], eax
call fcn.0044f2f0
cmp eax, 0
jne 0x4062bd
mov dword [esp + 0xf0], 0xfffffff4
jmp 0x407a68
mov eax, dword [0x492620]
sar eax, 8
or eax, 0xfd6984e6
and eax, 0xfffb9dfe
mov cx, word [0x489602]
mov dx, cx
dec edx
mov si, dx
mov word [0x489602], si
movsx edx, cx
or edx, 0x3fe0a741
cmp eax, edx
jne 0x40631e
mov ax, word [0x487228]
movsx ecx, ax
mov edx, dword [0x48ae48]
lea ecx, [ecx + edx + 0x6c41f485]
mov edx, dword [0x48a6f4]
and edx, ecx
mov dword [0x48a6f4], edx
jmp 0x406328
mov dword [0x4925d4], 0xd3150d1e
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.00409480
mov dx, word [0x488008]
mov ax, dx
and eax, 0xd888
mov dx, ax
mov word [0x488008], dx
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00412e80
cmp eax, 0
jge 0x406473
mov dword [0x491a9c], 0x8b497d05
cmp dword [esp + 0xe0], 0
je 0x4063f2
xor eax, eax
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
call fcn.0041c390
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4063ed
jmp 0x407a02
jmp 0x4063f2
mov eax, dword [0x497e8c]
mov ecx, dword [0x48c0c8]
sub ecx, eax
mov dword [0x48c0c8], ecx
cmp dword [esp + 0xe4], 0
je 0x406447
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0041d850
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x406442
jmp 0x407a02
jmp 0x406447
mov eax, dword [0x49abb0]
shl eax, 0xa
xor eax, 0x211e2448
mov ecx, dword [0x48af38]
imul ecx, eax
mov dword [0x48af38], ecx
mov dword [esp + 0xf0], 0
jmp 0x407a68
lea eax, [esp + 0xc0]
mov ecx, dword [0x498c68]
mov edx, ecx
inc edx
mov dword [0x498c68], edx
add ecx, 0xf723f133
mov dword [0x49652c], ecx
mov ecx, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0041d850
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4064bd
jmp 0x407a02
lea eax, [esp + 0xb4]
mov cx, word [0x487540]
mov dx, cx
imul edx, edx, 0x9ee9a9c
mov cx, dx
mov word [0x487540], cx
mov edx, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0041d850
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x406506
jmp 0x407a02
mov eax, 0xb1eb43c2
mov ecx, dword [0x492804]
mov edx, ecx
inc edx
mov dword [0x492804], edx
or ecx, 0x6dd7f593
cmp eax, ecx
jle 0x406532
mov dword [0x48c604], 0x7311fd95
lea eax, [esp + 0xa8]
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 1
mov ecx, dword [0x48def4]
imul ecx, ecx, 0xc0056114
mov dword [0x48def4], 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.0041d4b0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x40658f
jmp 0x407a02
lea eax, [esp + 0xa8]
xor ecx, ecx
mov edx, dword [0x493240]
not edx
mov si, word [0x485328]
mov di, si
and edi, edx
mov si, di
mov word [0x485328], si
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x64], ecx
call fcn.0041c390
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4065df
jmp 0x407a02
lea eax, [esp + 0x9c]
mov ecx, 2
mov dword [0x48f224], 0x3e8d7f3a
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x60], ecx
call fcn.0041d4b0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x40661e
jmp 0x407a02
lea eax, [esp + 0x90]
mov ecx, 3
mov edx, dword [0x492048]
dec edx
mov dword [0x492048], edx
or edx, 0xfbbfd5d3
mov esi, dword [0x48bfc8]
imul esi, edx
mov dword [0x48bfc8], esi
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x5c], ecx
call fcn.0041d4b0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x406675
jmp 0x407a02
mov eax, dword [0x48c10c]
mov dword [0x491264], eax
mov eax, esp
lea ecx, [esp + 0xb4]
mov dword [eax], ecx
call fcn.00403150
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 dword [0x49082c], 0x1650bcd4
cmp dword [esp + 0xcc], 0x1f
jge 0x4067bb
lea eax, [esp + 0xc0]
mov ecx, dword [0x4945b8]
mov edx, ecx
dec edx
mov dword [0x4945b8], edx
mov edx, dword [0x49b084]
add edx, ecx
mov dword [0x49b084], edx
mov ecx, dword [esp + 0xcc]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xcc], edx
mov ecx, dword [0x48fbf4]
sar ecx, 2
mov edx, dword [0x4949bc]
or edx, ecx
mov dword [0x4949bc], edx
mov ecx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00407dd0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x406737
jmp 0x407a02
lea eax, [esp + 0xb4]
mov ecx, dword [0x495f10]
mov edx, dword [0x49354c]
mov esi, edx
dec esi
mov dword [0x49354c], esi
add ecx, edx
or ecx, 0xee5025f9
mov edx, dword [0x48cb84]
add edx, ecx
mov dword [0x48cb84], edx
mov ecx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00407dd0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x406791
jmp 0x407a02
mov eax, dword [0x499590]
xor eax, 0x4012
or eax, 0x2fed
mov cx, word [0x481198]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x481198], cx
jmp 0x4067c6
mov dword [esp + 0xcc], 0
mov eax, dword [0x494b90]
shr eax, 9
mov cx, word [0x4889a0]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4889a0], cx
mov eax, dword [esp + 0xc4]
dec eax
mov dword [esp + 0xd4], eax
mov eax, dword [0x491b20]
dec eax
mov dword [0x491b20], eax
cmp eax, 0x7cd24fb0
jge 0x40681a
mov eax, dword [0x4927c4]
imul eax, eax, 0x3359f45e
mov dword [0x4927c4], eax
mov eax, dword [esp + 0xb8]
dec eax
mov dword [esp + 0xd0], eax
mov cx, word [0x481720]
mov ax, cx
add eax, 0xb52ce82e
mov cx, ax
mov word [0x481720], cx
mov eax, dword [esp + 0xd4]
mov edx, dword [esp + 0xd0]
sub eax, edx
shl eax, 5
mov edx, esp
mov dword [edx + 4], eax
lea eax, [esp + 0xb4]
mov dword [edx], eax
call fcn.00407dd0
mov edx, dword [0x48fd44]
imul edx, edx, 0x87c23554
mov dword [0x48fd44], edx
mov dword [esp + 0x58], eax
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044b5a0
cmp eax, 0
jl 0x406921
mov eax, dword [0x491cf8]
shl eax, 7
mov ecx, 0x8983bbe8
sub ecx, eax
mov eax, dword [0x49a4fc]
xor eax, ecx
mov dword [0x49a4fc], eax
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 [0x48e7a0]
xor eax, 0x1cc8c334
mov dword [0x48e7a0], 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.0042d6f0
mov ecx, dword [0x491648]
add ecx, 0x7f78438
mov dword [0x491648], ecx
mov dword [esp + 0x54], eax
jmp 0x40687e
mov eax, dword [0x49c7f4]
add eax, 0x1069367d
mov dword [0x49c7f4], eax
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.004096a0
mov ecx, dword [0x48a668]
or ecx, 0x78a45977
mov dword [0x48a668], 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 0x407819
mov dword [0x490458], 0xdd02c54d
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 0x4069e4
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 0x4070bf
mov eax, 0xce9941dc
mov cx, word [0x4861ae]
movsx edx, cx
mov esi, dword [0x48c904]
xor edx, esi
xor edx, 0xff32ecd4
mov dword [0x48c904], edx
mov edx, dword [0x48c2e0]
add edx, 0xc9364415
mov cx, word [0x47fe42]
mov si, cx
and esi, edx
mov cx, si
mov word [0x47fe42], cx
mov edx, dword [0x48e7cc]
xor edx, 0xffffffff
cmp eax, edx
jne 0x406a49
mov eax, dword [0x48e2a4]
and eax, 0x52deb291
mov dword [0x48e2a4], eax
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xbc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x74], eax
mov eax, dword [0x49c728]
inc eax
mov dword [0x49c728], eax
and eax, 0x63ae2473
cmp eax, 0x76aa50d2
jl 0x406a88
mov eax, dword [0x48df60]
and eax, 0xc00219a8
mov dword [0x48df60], eax
movzx eax, word [esp + 0x74]
mov dword [esp + 0x7c], eax
mov eax, dword [0x49a0ac]
mov ecx, eax
dec ecx
mov dword [0x49a0ac], ecx
cmp eax, 0x5c6d1038
jg 0x406ab9
mov eax, dword [0x492be4]
add eax, 0x14080d4d
mov dword [0x492be4], eax
mov eax, 0xdffdddd7
movzx ecx, word [esp + 0x76]
mov dword [esp + 0x78], ecx
mov ecx, dword [0x48a904]
imul ecx, ecx, 0x4d0c0ff9
mov dword [0x48a904], ecx
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 eax, dword [0x48c628]
shr eax, 3
add eax, 0x57bf4ab3
mov di, word [0x488d6e]
mov cx, di
xor eax, ecx
xor eax, 0x4d56
mov di, ax
mov word [0x488d6e], di
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 eax, dword [0x494b2c]
mov ecx, dword [0x48db28]
imul ecx, eax
mov dword [0x48db28], ecx
mov eax, dword [esp + 0x80]
shl eax, 0x10
mov dword [esp + 0x80], eax
mov di, word [0x48749c]
movsx eax, di
mov ecx, dword [0x48fe20]
xor ecx, 0xcf81f3c1
or eax, ecx
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jne 0x406bc3
mov eax, dword [0x49cb64]
mov ecx, eax
dec ecx
mov dword [0x49cb64], ecx
mov ecx, dword [0x49b0e4]
or ecx, eax
mov dword [0x49b0e4], ecx
jmp 0x406c2e
mov eax, dword [0x48f758]
dec eax
mov dword [0x48f758], eax
mov ecx, dword [0x48f854]
sub eax, ecx
add eax, 0x7edfe5a8
mov dx, word [0x480880]
movsx ecx, dx
shl ecx, 6
mov esi, dword [0x48cdec]
not esi
and ecx, esi
mov esi, dword [0x492ed4]
xor ecx, esi
cmp eax, ecx
jge 0x406c29
mov eax, dword [0x4993b4]
shl eax, 0xa
add eax, 0xe5fa21a9
or eax, 0x62df6ed0
cmp eax, 0x2cb8bf82
jl 0x406c24
jmp 0x406c24
jmp 0x406c29
jmp 0x406c2e
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 [0x48a4a8]
imul eax, eax, 0xd2ee85a0
mov dword [0x48a4a8], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov eax, dword [0x48cda0]
inc eax
mov dword [0x48cda0], eax
mov ecx, dword [0x48fed8]
and eax, ecx
and eax, 0xb2980419
mov dword [0x48fed8], eax
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
jae 0x406d5f
mov eax, dword [0x49bd14]
and eax, 0x6a3d7013
mov dword [0x49bd14], 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 dword [0x48dec8], 0x34234024
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x47], cl
jb 0x406d08
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 0x406d19
jmp 0x406d41
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 0x406cdd
mov ax, word [0x483146]
movsx ecx, ax
xor ecx, 0x756f4337
mov edx, dword [0x495358]
imul edx, ecx
mov dword [0x495358], edx
mov ax, word [0x483e90]
mov cx, ax
add ecx, 0x84684089
mov ax, cx
mov word [0x483e90], ax
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x80]
sub edx, ecx
mov dword [esp + 0x80], edx
mov ecx, dword [0x48f490]
dec ecx
mov dword [0x48f490], ecx
imul ecx, ecx, 0xe2ccb8ff
xor ecx, 0x153d
mov ax, word [0x4874fc]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x4874fc], ax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
xor edx, edx
div ecx
mov dword [esp + 0x8c], eax
mov eax, dword [0x496dc0]
inc eax
mov dword [0x496dc0], eax
mov si, word [0x4807b0]
movsx ecx, si
sar ecx, 8
xor ecx, 0x1f1ee373
cmp eax, ecx
jne 0x406e10
mov eax, dword [0x48f410]
mov ecx, eax
dec ecx
mov dword [0x48f410], ecx
mov ecx, dword [0x4919ac]
add ecx, eax
mov dword [0x4919ac], ecx
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 [0x48f874]
cmp eax, 0x660179f4
je 0x406e64
mov ax, word [0x48568a]
movsx ecx, ax
mov edx, dword [0x48b37c]
imul ecx, edx
imul ecx, ecx, 0xe598c37c
mov edx, dword [0x491890]
sub edx, ecx
mov dword [0x491890], edx
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov dword [esp + 0x84], eax
mov dword [0x495ce4], 0xe01e77c2
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 eax, dword [0x492eac]
mov ecx, eax
inc ecx
mov dword [0x492eac], ecx
and eax, 0x8bbdc763
mov ecx, dword [0x497148]
xor ecx, eax
mov dword [0x497148], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov dx, word [0x4843b4]
mov ax, dx
or eax, 0x426d
mov dx, ax
mov word [0x4843b4], dx
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x70]
jae 0x407028
mov eax, 0xc601006
mov ecx, dword [0x48e160]
mov edx, ecx
dec edx
mov dword [0x48e160], edx
xor ecx, 0x31153987
mov edx, dword [0x492ef8]
sub edx, ecx
mov dword [0x492ef8], edx
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 ecx, dword [0x48f314]
cmp eax, ecx
jge 0x406f67
mov eax, dword [0x497ff4]
and eax, 0xb5c61a71
mov dword [0x497ff4], eax
jmp 0x406f6c
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x46], cl
jb 0x406f97
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 0x406fa8
jmp 0x406fd0
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 0x406f6c
mov eax, 0x24294088
mov ecx, dword [0x49a99c]
shl ecx, 2
xor ecx, 0xf121d6ad
cmp eax, ecx
je 0x407023
mov eax, 0x80d7d8be
mov ecx, dword [0x48d460]
and ecx, 0x15ed063c
cmp eax, ecx
jg 0x40701e
mov eax, dword [0x494bd4]
or eax, 0x260523e5
mov ecx, dword [0x4966a4]
imul ecx, eax
mov dword [0x4966a4], ecx
jmp 0x407023
jmp 0x407028
mov eax, dword [0x490b20]
mov ecx, dword [0x489c74]
and eax, ecx
and eax, 0x8ec2abd6
mov ecx, dword [0x48b0f8]
add ecx, eax
mov dword [0x48b0f8], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x84]
sub ecx, eax
mov dword [esp + 0x84], ecx
mov dx, word [0x485c10]
movsx eax, dx
mov ecx, dword [0x492110]
lea eax, [eax + ecx - 0x1e9da66]
mov dword [0x492110], eax
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 dx, word [0x486710]
mov ax, dx
add eax, 0xefaaefee
mov dx, ax
mov word [0x486710], dx
mov dword [0x493c6c], 0x26daaa60
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd0]
sub eax, ecx
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x492840]
inc eax
mov dword [0x492840], eax
mov ecx, dword [0x49c4ac]
dec ecx
mov dword [0x49c4ac], ecx
and eax, ecx
mov ecx, dword [0x48d488]
xor ecx, eax
mov dword [0x48d488], ecx
lea eax, [esp + 0x9c]
xor ecx, ecx
mov dx, word [0x48452c]
mov si, dx
add esi, 0xb71c39ae
mov dx, si
mov word [0x48452c], dx
mov esi, dword [esp + 0xd8]
mov edi, dword [esp + 0xd0]
sub esi, edi
mov edi, dword [esp + 0xb0]
mov ebx, dword [edi + esi*4 - 4]
dec ebx
mov dword [edi + esi*4 - 4], ebx
mov esi, dword [0x48a808]
shl esi, 6
xor esi, 0xcee344a9
mov edi, dword [0x48eb90]
and edi, esi
mov dword [0x48eb90], edi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.0041c390
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x40719a
jmp 0x407a02
mov eax, dword [0x48c528]
and eax, 0xb5b799fb
mov cx, word [0x487836]
movsx edx, cx
shl edx, 0xa
or edx, 0x1a6c0b5d
cmp eax, edx
jne 0x4071db
mov eax, dword [0x490b50]
shl eax, 9
xor eax, 0x7af094a9
mov ecx, dword [0x48ca40]
imul ecx, eax
mov dword [0x48ca40], ecx
cmp dword [esp + 0xd0], 1
jge 0x4071f4
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x40720c
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]
lea ecx, [esp + 0x9c]
mov edx, dword [esp + 0xa4]
mov dword [edx], eax
mov eax, dword [0x494bc8]
sar eax, 7
add eax, 0xec0ddf08
mov edx, dword [0x48df28]
and edx, eax
mov dword [0x48df28], 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 [0x4814ca]
mov ax, si
dec eax
mov si, ax
mov word [0x4814ca], si
mov si, word [0x482442]
mov dx, si
or edx, eax
mov si, dx
mov word [0x482442], si
mov eax, dword [esp + 0xd8]
sub eax, dword [esp + 0xd0]
sub eax, 1
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + eax*4]
mov dword [esp], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004234e0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4072c1
jmp 0x407a02
lea eax, [esp + 0x90]
xor ecx, ecx
mov edx, dword [0x49a344]
not edx
and edx, 0x660c8374
mov esi, dword [0x494a90]
or esi, edx
mov dword [0x494a90], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.0041c390
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x40730f
jmp 0x407a02
mov eax, dword [0x49b124]
mov ecx, dword [0x48c604]
and ecx, eax
mov dword [0x48c604], ecx
cmp dword [esp + 0xd8], 2
jge 0x40733b
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x407353
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 dword [0x4958cc], 0xe911c2d3
cmp dword [esp + 0xd8], 1
jge 0x407383
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x40739b
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, 0x554497d0
mov edx, dword [esp + 0x98]
mov dword [edx + 4], eax
mov eax, dword [0x48ae34]
imul eax, eax, 0xfa0cf1e1
add eax, 0x6f0ca200
cmp ecx, eax
jle 0x40741c
mov eax, 0x2f9df03d
mov ecx, dword [0x49ac1c]
mov edx, ecx
dec edx
mov dword [0x49ac1c], edx
mov edx, dword [0x48bcd0]
mov esi, edx
dec esi
mov dword [0x48bcd0], esi
imul ecx, edx
cmp eax, ecx
je 0x407417
mov ax, word [0x482f78]
mov cx, ax
xor ecx, 0x1cea
mov ax, word [0x481f16]
mov dx, ax
and edx, ecx
mov ax, dx
mov word [0x481f16], ax
jmp 0x40741c
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 [0x493e0c]
or eax, 0x6fc0a6c8
mov dword [0x493e0c], eax
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044b5a0
cmp eax, 0
jg 0x407111
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x491f44]
sar edx, 3
or edx, 0x3afe8e2e
mov esi, dword [0x48d424]
xor esi, edx
mov dword [0x48d424], 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.004234e0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4074d4
jmp 0x407a02
lea eax, [esp + 0x9c]
mov cx, word [0x488af6]
mov dx, cx
or edx, 0x3cee
mov cx, dx
mov word [0x488af6], cx
mov edx, dword [esp + 0xd8]
sub edx, dword [esp + 0xd0]
sub edx, 1
shl edx, 5
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00407dd0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x40752a
jmp 0x407a02
mov eax, 0xa5e30ad2
mov ecx, dword [0x499538]
shl ecx, 9
xor ecx, 0xd423de17
cmp eax, ecx
je 0x407590
mov eax, dword [0x49ad70]
inc eax
mov dword [0x49ad70], eax
mov cx, word [0x487694]
mov dx, cx
inc edx
mov si, dx
mov word [0x487694], si
movsx edx, cx
imul edx, edx, 0x6d23f3b4
add eax, edx
cmp eax, 0x767fead8
jge 0x40758b
mov eax, dword [0x48d35c]
or eax, 0x81036fca
mov dword [0x48d35c], eax
jmp 0x407590
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0042d6f0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4075c3
jmp 0x407a02
mov eax, 0xffea0594
mov ecx, dword [0x48e7ac]
dec ecx
mov dword [0x48e7ac], ecx
or ecx, 0x73028de1
cmp eax, ecx
jne 0x407638
mov eax, 0xe6bc9871
mov cx, word [0x4827b4]
movsx edx, cx
mov esi, dword [0x49122c]
sub eax, esi
xor eax, 0x71a15af7
cmp edx, eax
je 0x407633
mov eax, dword [0x48d9b4]
add eax, 0x3fea7a21
mov cx, word [0x486016]
movsx edx, cx
imul edx, edx, 0xc31433bf
cmp eax, edx
jg 0x40762e
jmp 0x40762e
jmp 0x407633
jmp 0x407638
lea eax, [esp + 0xc0]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.0044f2f0
cmp eax, 0
jge 0x4077eb
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x498558]
xor edx, 0x14fda29e
mov dword [0x498558], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0041d850
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x40769f
jmp 0x407a02
lea eax, [esp + 0x9c]
mov ecx, dword [0x499848]
xor ecx, 0x86da
mov dx, word [0x488c78]
mov si, dx
and esi, ecx
mov dx, si
mov word [0x488c78], dx
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.00407dd0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4076fd
jmp 0x407a02
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov edx, dword [0x499d08]
mov esi, edx
dec esi
mov dword [0x499d08], esi
or edx, 0x9b9144fc
mov esi, dword [0x48a4ac]
xor esi, edx
mov dword [0x48a4ac], esi
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00425d50
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x407753
jmp 0x407a02
mov eax, 0x9706d7cc
mov cx, word [0x4896d4]
movsx edx, cx
xor edx, 0xffffffff
xor edx, 0x6d18a8e8
cmp eax, edx
jg 0x407798
mov eax, dword [0x499e7c]
add eax, 0x9e8ada13
mov cx, word [0x486a14]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x486a14], cx
jmp 0x4077a7
mov eax, dword [0x490654]
add eax, 0x21e3f7cc
mov dword [0x490654], eax
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd0]
sub eax, ecx
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x494c78]
inc eax
mov dword [0x494c78], eax
imul eax, eax, 0x1b68efb9
add eax, 0x5a027fc0
mov ecx, dword [0x48b6b4]
and ecx, eax
mov dword [0x48b6b4], ecx
mov ax, word [0x482244]
movsx ecx, ax
mov edx, dword [0x49890c]
imul edx, ecx
mov dword [0x49890c], edx
mov eax, dword [esp + 0xd8]
add eax, 0xffffffff
mov dword [esp + 0xd8], eax
jmp 0x40697a
mov ax, word [0x488f48]
movsx ecx, ax
xor ecx, 0xffffffff
and ecx, 0x48b3209
cmp ecx, 0x400000
jne 0x407847
mov eax, dword [0x4951f8]
imul eax, eax, 0xbfdd834f
mov dword [0x4951f8], eax
cmp dword [esp + 0xe0], 0
je 0x4078e8
mov eax, dword [0x495b04]
sar eax, 1
imul eax, eax, 0xdc7202c0
and eax, 0xe6c6a0c0
mov ecx, dword [0x49658c]
imul ecx, eax
mov dword [0x49658c], ecx
mov eax, dword [esp + 0xe0]
mov ecx, esp
lea edx, [esp + 0xa8]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0041d850
mov ecx, dword [0x493250]
imul ecx, ecx, 0xa9fab1fc
mov dword [0x493250], ecx
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 si, word [0x480556]
movsx ecx, si
add ecx, 0x37cf9ba3
and ecx, 0x73969f46
mov edx, dword [0x48f474]
xor edx, ecx
mov dword [0x48f474], edx
mov dword [esp + 0x28], eax
mov word [0x481a08], 0x185
cmp dword [esp + 0xe4], 0
je 0x4079f8
xor eax, eax
mov dword [0x48e07c], 0x6fe11a93
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.004096a0
mov si, word [0x485932]
mov cx, si
xor ecx, 0x819a
mov si, cx
mov word [0x485932], 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.0041d850
mov ecx, dword [0x48bcc8]
mov edx, ecx
inc edx
mov dword [0x48bcc8], edx
imul ecx, ecx, 0xa90dc6c3
mov edx, dword [0x49a6dc]
or edx, ecx
mov dword [0x49a6dc], edx
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe4]
mov dword [edx], ecx
mov ecx, dword [0x48aa50]
imul ecx, ecx, 0x20fe1e14
mov dword [0x48aa50], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.0044f2f0
cmp eax, 0
jne 0x4079da
mov eax, dword [esp + 0xe4]
mov dword [eax], 1
mov eax, dword [0x492820]
shr eax, 8
mov cx, word [0x482aba]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x482aba], cx
mov dword [0x499fc8], 0x800a0400
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.0042b030
mov dx, word [0x4836d4]
mov ax, dx
add eax, 0xdeb82e03
mov dx, ax
mov word [0x4836d4], dx
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0xf0]
add esp, 0xf4
pop esi
pop edi
pop ebx
ret