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

Disassembly:
push ebx
push edi
push esi
sub esp, 0xfc
mov eax, dword [esp + 0x118]
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
mov esi, dword [esp + 0x10c]
xor edi, edi
mov dword [esp + 0xf4], eax
mov dword [esp + 0xf0], ecx
mov dword [esp + 0xec], edx
mov dword [esp + 0xe8], esi
mov bx, word [0x4ace08]
mov ax, bx
or eax, 0x7139
mov bx, ax
mov word [0x4ace08], bx
mov eax, dword [0x4a6528]
mov ecx, eax
inc ecx
mov dword [0x4a6528], ecx
mov ecx, dword [0x4a50c0]
and eax, ecx
and eax, 0x32d9fb2f
mov dword [0x4a50c0], eax
mov eax, dword [0x4a0df4]
xor eax, 0x1f0f9054
mov ecx, dword [0x49d3b0]
sub ecx, eax
mov dword [0x49d3b0], ecx
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x74], edi
call fcn.0041ef80
cmp eax, 0
jne 0x420378
mov dword [esp + 0xf8], 0xfffffff4
jmp 0x421d34
mov ax, word [0x4b059e]
movsx ecx, ax
shl ecx, 2
add ecx, 0xd815c4bb
cmp ecx, 0x83f5b394
jne 0x4203ab
mov eax, dword [0x4a9b68]
imul eax, eax, 0x4a7da1af
mov dword [0x4a9b68], eax
jmp 0x4203ba
mov eax, dword [0x4a18a8]
and eax, 0xec303766
mov dword [0x4a18a8], eax
mov eax, esp
lea ecx, [esp + 0x98]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa4]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc8]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.00429e70
mov dx, word [0x4b2bda]
mov ax, dx
xor eax, 0xbfb4
mov dx, ax
mov word [0x4b2bda], dx
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004453d0
cmp eax, 0
jge 0x420524
mov ax, word [0x4ac122]
mov cx, ax
imul ecx, ecx, 0xcbf718eb
mov ax, cx
mov word [0x4ac122], ax
cmp dword [esp + 0xe8], 0
je 0x420492
xor eax, eax
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x70], eax
call fcn.0044b9d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x42048d
jmp 0x421cc8
jmp 0x420492
mov eax, dword [0x4a6e34]
shr eax, 3
add eax, 0xc2471910
mov cx, word [0x4aaaa2]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4aaaa2], cx
cmp dword [esp + 0xec], 0
je 0x4204f7
mov eax, dword [esp + 0xf0]
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00448160
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4204f2
jmp 0x421cc8
jmp 0x4204f7
mov eax, dword [0x498f84]
imul eax, eax, 0x79c91ae1
mov ecx, dword [0x4a9fa8]
xor eax, ecx
xor eax, 0x838bb454
mov dword [0x4a9fa8], eax
mov dword [esp + 0xf8], 0
jmp 0x421d34
lea eax, [esp + 0xc8]
mov ecx, dword [0x4a3184]
add ecx, 0x4020bcc3
xor ecx, 0xf070cb27
mov edx, dword [0x4a800c]
and edx, ecx
mov dword [0x4a800c], edx
mov ecx, dword [esp + 0xf0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00448160
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x420573
jmp 0x421cc8
mov eax, 0xc34aac79
mov ecx, dword [0x4a45cc]
inc ecx
mov dword [0x4a45cc], ecx
add ecx, 0x6cb66f37
add ecx, 0x94a4043c
cmp eax, ecx
jne 0x4205b1
mov ax, word [0x4b046c]
mov cx, ax
and ecx, 0x804c
mov ax, cx
mov word [0x4b046c], ax
lea eax, [esp + 0xbc]
mov ecx, dword [esp + 0xf4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00448160
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4205e0
jmp 0x421cc8
lea eax, [esp + 0xb0]
mov cx, word [0x4b04a6]
mov dx, cx
or edx, 0xafa0
mov cx, dx
mov word [0x4b04a6], cx
mov dword [esp + 0xbc], 1
mov dword [esp + 0xc8], 1
mov edx, dword [0x4a96a0]
dec edx
mov dword [0x4a96a0], edx
mov esi, dword [0x4a850c]
xor edx, esi
mov cx, word [0x4ad974]
mov si, cx
imul esi, edx
mov cx, si
mov word [0x4ad974], cx
mov edx, dword [esp + 0xf0]
mov edx, dword [edx + 4]
add edx, 2
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0044b1f0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x420671
jmp 0x421cc8
lea eax, [esp + 0xb0]
xor ecx, ecx
mov word [0x4af1c2], 0x8ca0
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x6c], ecx
call fcn.0044b9d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4206ac
jmp 0x421cc8
lea eax, [esp + 0xa4]
mov ecx, 2
mov word [0x4b1450], 0x283d
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x68], ecx
call fcn.0044b1f0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4206ea
jmp 0x421cc8
lea eax, [esp + 0x98]
mov ecx, 3
mov dx, word [0x4b2f98]
mov si, dx
add esi, 0x645e8853
mov dx, si
mov word [0x4b2f98], dx
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x64], ecx
call fcn.0044b1f0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x420739
jmp 0x421cc8
mov eax, 0xdbc14291
mov cx, word [0x4ab5d8]
mov dx, cx
dec edx
mov si, dx
mov word [0x4ab5d8], si
movsx edx, cx
cmp eax, edx
je 0x4207b6
mov eax, 0xbfef77ea
mov ecx, dword [0x498708]
inc ecx
mov dword [0x498708], ecx
or ecx, 0x9dc6f1fc
cmp eax, ecx
je 0x4207b1
mov ax, word [0x4b158e]
mov cx, ax
mov ax, word [0x4ad2a2]
mov dx, ax
or ecx, edx
dec edx
mov ax, dx
mov word [0x4ad2a2], ax
mov ax, cx
movsx ecx, ax
mov edx, dword [0x4a2698]
imul edx, ecx
mov dword [0x4a2698], edx
jmp 0x4207b6
mov eax, esp
lea ecx, [esp + 0xbc]
mov dword [eax], ecx
call fcn.004354f0
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xd4], eax
mov eax, dword [0x49ded0]
inc eax
mov dword [0x49ded0], eax
and eax, 0x855abb32
mov ecx, dword [0x498c54]
xor ecx, eax
mov dword [0x498c54], ecx
cmp dword [esp + 0xd4], 0x1f
jge 0x420904
mov eax, dword [0x49a620]
and eax, 0xee2282ea
cmp eax, 0xb6405622
jl 0x420847
mov ax, word [0x4ac6b4]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4ac6b4], ax
mov ax, word [0x4b2e78]
mov dx, ax
imul edx, ecx
mov ax, dx
mov word [0x4b2e78], ax
lea eax, [esp + 0xc8]
mov ecx, dword [esp + 0xd4]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xd4], edx
mov si, word [0x4ac294]
movsx ecx, si
and ecx, 0x1a0005
or ecx, 0x7be1ffba
mov edx, dword [0x4a74c4]
xor edx, ecx
mov dword [0x4a74c4], edx
mov ecx, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043e500
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4208af
jmp 0x421cc8
lea eax, [esp + 0xbc]
mov ecx, dword [0x4a9c38]
shl ecx, 7
mov edx, dword [0x4aa420]
and edx, ecx
mov dword [0x4aa420], edx
mov ecx, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043e500
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4208f5
jmp 0x421cc8
mov eax, dword [0x49967c]
mov dword [0x498ffc], eax
jmp 0x42090f
mov dword [esp + 0xd4], 0
mov eax, dword [0x4a3f94]
xor eax, 0x190b29a5
mov dword [0x4a3f94], eax
mov eax, dword [esp + 0xcc]
dec eax
mov dword [esp + 0xdc], eax
mov eax, dword [0x4a4e3c]
mov ecx, dword [0x49ce54]
imul ecx, ecx, 0x2efa2077
and ecx, 0x3a79caab
cmp eax, ecx
je 0x42095b
mov eax, dword [0x49b5b8]
add eax, 0x8209409
mov dword [0x49b5b8], eax
mov eax, dword [esp + 0xc0]
dec eax
mov dword [esp + 0xd8], eax
mov word [0x4b1ffa], 0x8300
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xbc]
mov dword [ecx], eax
call fcn.0043e500
mov ecx, dword [0x4a9600]
shl ecx, 7
add ecx, 0x3a13d9a6
xor ecx, 0x8b3c782b
mov edx, dword [0x4a106c]
add edx, ecx
mov dword [0x4a106c], edx
mov dword [esp + 0x60], eax
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00443730
cmp eax, 0
jl 0x420acc
mov eax, dword [0x49806c]
xor eax, 0xffffffff
xor eax, 0x5e13674d
cmp eax, 0xe6d93387
je 0x420a25
mov eax, dword [0x4a0cd8]
mov ecx, dword [0x4a726c]
dec ecx
mov dword [0x4a726c], ecx
xor eax, ecx
mov dx, word [0x4aba38]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x4aba38], dx
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov eax, dword [0x4a7d40]
and eax, 0xbc2b75fb
mov dword [0x4a7d40], eax
mov eax, esp
lea ecx, [esp + 0xbc]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc8]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.0043b490
mov ecx, dword [0x49aa60]
mov edx, ecx
dec edx
mov dword [0x49aa60], edx
xor ecx, 0x4409f0a0
or ecx, 0xabf20b4c
mov si, word [0x4b2710]
movsx edx, si
shl edx, 9
cmp ecx, edx
mov dword [esp + 0x5c], eax
jne 0x420ac7
mov eax, dword [0x4a74e0]
mov ecx, eax
inc ecx
mov dword [0x4a74e0], ecx
mov dx, word [0x4ae292]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x4ae292], dx
jmp 0x4209c0
mov eax, 0x7d9c1326
mov ecx, dword [0x4a7d44]
and ecx, 0xf0beddf
mov dword [0x4a7d44], ecx
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0xd8]
sub ecx, edx
shl ecx, 5
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xbc]
mov dword [edx], ecx
mov dword [esp + 0x58], eax
call fcn.00402280
mov ecx, dword [0x49fa3c]
dec ecx
mov dword [0x49fa3c], ecx
imul ecx, ecx, 0xe7cd9d0
xor ecx, 0xfee9fe30
mov edx, dword [esp + 0x58]
cmp edx, ecx
mov dword [esp + 0x54], eax
jge 0x420b53
mov ax, word [0x4abd76]
mov cx, ax
and ecx, 0x9440
mov ax, cx
mov word [0x4abd76], ax
jmp 0x420b94
mov ax, word [0x4ad428]
movsx ecx, ax
sar ecx, 0xa
sub ecx, 0x5f540c10
and ecx, 0xd8c38bac
cmp ecx, 0x91d9d93e
jl 0x420b8f
mov ax, word [0x4af942]
mov cx, ax
and ecx, 0xdffb
mov ax, cx
mov word [0x4af942], ax
jmp 0x420b94
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
cmp eax, dword [esp + 0xd8]
jle 0x421ad8
mov eax, 0x4ff42dfe
mov ecx, dword [0x4a3a58]
cmp eax, ecx
jle 0x420be6
mov eax, dword [0x4a6970]
mov ecx, eax
dec ecx
mov dword [0x4a6970], ecx
add eax, 0x4b092541
xor eax, 0x7e1ced93
mov dword [0x4a9aa8], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc4]
cmp eax, dword [edx + ecx*4]
jb 0x420c32
mov eax, dword [esp + 0xe0]
sub eax, dword [esp + 0xd8]
sub eax, 1
mov ecx, dword [esp + 0xb8]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x421364
mov eax, 0x291de501
mov ecx, dword [0x4a6680]
not ecx
mov edx, dword [0x4a316c]
and edx, ecx
mov dword [0x4a316c], edx
mov ecx, dword [0x4a456c]
sar ecx, 9
mov edx, 0x26269983
sub edx, ecx
mov ecx, dword [0x4991d4]
sub edx, ecx
mov ecx, dword [0x497ccc]
and ecx, edx
mov dword [0x497ccc], ecx
mov ecx, dword [0x4aa098]
imul ecx, ecx, 0x853a438e
mov edx, dword [0x49d870]
sub ecx, edx
mov si, word [0x4b2836]
mov dx, si
or edx, ecx
mov si, dx
mov word [0x4b2836], si
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc4]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x49a650]
mov edx, ecx
inc edx
mov dword [0x49a650], edx
add ecx, 0x53b708be
mov si, word [0x4abbdc]
mov dx, si
or ecx, edx
or ecx, 0x6d95
mov si, cx
mov word [0x4abbdc], si
movzx ecx, word [esp + 0x7c]
mov dword [esp + 0x84], ecx
mov ecx, dword [0x4a0978]
add ecx, 0x4d8dce96
mov dword [0x4a0978], ecx
movzx ecx, word [esp + 0x7e]
mov dword [esp + 0x80], ecx
mov ecx, dword [0x4a3b3c]
xor ecx, 0x88ad4429
mov edx, dword [0x49e9fc]
add edx, ecx
mov dword [0x49e9fc], edx
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xd0]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x80]
xor edi, edi
mov dword [esp + 0x50], eax
mov eax, ecx
mov dword [esp + 0x4c], edx
mov edx, edi
mov ecx, dword [esp + 0x4c]
div ecx
mov dword [esp + 0x90], eax
mov eax, dword [0x49f550]
and eax, 0xe9bdb5d4
mov dword [0x49f550], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x90]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x88], eax
mov eax, dword [0x4a2588]
add eax, 0x40348018
mov dword [0x4a2588], eax
mov eax, dword [esp + 0x88]
shl eax, 0x10
mov dword [esp + 0x88], eax
mov si, word [0x4b1b0a]
mov ax, si
xor eax, 0x2763
mov si, ax
mov word [0x4b1b0a], si
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x88]
or ecx, eax
mov dword [esp + 0x88], ecx
mov eax, dword [0x4a145c]
imul eax, eax, 0x1c436e97
or eax, 0xd7476e5c
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jne 0x420e63
mov eax, 0x72b97318
mov ecx, dword [0x49b8f0]
cmp eax, ecx
je 0x420e3c
mov ax, word [0x4b32fa]
mov cx, ax
xor ecx, 0xd868
mov ax, cx
mov word [0x4b32fa], ax
jmp 0x420e5e
mov eax, dword [0x4979dc]
not eax
add eax, 0x501e4382
mov cx, word [0x4acb60]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4acb60], cx
jmp 0x420e63
mov eax, 0xff94b7d
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x84]
imul ecx, edx
mov dword [esp + 0x78], ecx
mov ecx, dword [0x49f730]
or ecx, 0x91430843
cmp eax, ecx
jge 0x420ea9
mov ax, word [0x4add76]
mov cx, ax
xor ecx, 0x3eeb
mov ax, cx
mov word [0x4add76], ax
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
jae 0x421034
mov eax, dword [0x4a2ebc]
mov cx, word [0x4abefa]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4abefa], cx
mov eax, dword [esp + 0x90]
dec eax
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x88]
add edx, eax
mov dword [esp + 0x88], edx
mov cx, word [0x4b3f76]
movsx eax, cx
sar eax, 7
add eax, 0xc1ff1271
mov edx, dword [0x49a2e8]
sub edx, eax
mov dword [0x49a2e8], edx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x7c]
mov byte [esp + 0x4b], cl
jb 0x420f43
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
setb cl
mov byte [esp + 0x4b], cl
mov al, byte [esp + 0x4b]
test al, 1
jne 0x420f54
jmp 0x420f7c
mov eax, dword [esp + 0x90]
add eax, 0xffffffff
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x88]
mov dword [esp + 0x88], eax
jmp 0x420f18
mov eax, 0x81495eb4
mov cx, word [0x4abb4e]
movsx edx, cx
sub edx, 0x90943f59
add edx, 0xbef1bb1b
cmp eax, edx
jne 0x421017
mov eax, 0x4220320c
mov ecx, dword [0x4a3758]
mov dx, word [0x4ade8e]
mov si, dx
dec esi
mov dx, si
mov word [0x4ade8e], dx
movsx esi, dx
mov dx, word [0x4ac314]
mov di, dx
dec edi
mov bx, di
mov word [0x4ac314], bx
movsx edi, dx
imul esi, edi
xor ecx, esi
cmp eax, ecx
je 0x421012
mov eax, dword [0x4a73c8]
sar eax, 8
imul eax, eax, 0x34ffaf10
add eax, 0x33dfc01
mov ecx, dword [0x4a1e44]
cmp eax, ecx
jne 0x42100d
jmp 0x42100d
jmp 0x421012
jmp 0x42102f
mov ax, word [0x4af96c]
mov cx, ax
xor ecx, 0x4820
mov ax, cx
mov word [0x4af96c], ax
jmp 0x421034
mov eax, dword [0x4a5d24]
xor eax, 0x837a1366
mov dword [0x4a5d24], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x88]
sub ecx, eax
mov dword [esp + 0x88], ecx
mov dx, word [0x4b1724]
mov ax, dx
and eax, 0xffbf
mov dx, ax
mov word [0x4b1724], dx
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
xor edx, edx
div ecx
mov dword [esp + 0x94], eax
mov si, word [0x4b1d82]
mov ax, si
add eax, 0x43cc7757
mov si, ax
mov word [0x4b1d82], si
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x8c], eax
mov si, word [0x4ae9fc]
mov ax, si
inc eax
mov di, ax
mov word [0x4ae9fc], di
movsx eax, si
mov ecx, dword [0x49d480]
xor eax, ecx
xor eax, 0x3b4858bc
mov dword [0x49d480], eax
mov eax, dword [esp + 0x8c]
shl eax, 0x10
mov dword [esp + 0x8c], eax
mov eax, dword [0x4a9824]
or eax, 0x8178398
mov dword [0x4a9824], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x8c]
or ecx, eax
mov dword [esp + 0x8c], ecx
mov eax, dword [0x49d524]
dec eax
mov dword [0x49d524], eax
imul eax, eax, 0x93ccbf42
mov si, word [0x4af820]
movsx ecx, si
imul ecx, ecx, 0x6cefc12c
cmp eax, ecx
je 0x421182
mov ax, word [0x4b122a]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4b122a], ax
movsx ecx, ax
mov edx, dword [0x4a9938]
xor edx, ecx
mov dword [0x4a9938], edx
jmp 0x421191
mov eax, dword [0x4a1d6c]
and eax, 0x81bb7556
mov dword [0x4a1d6c], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x84]
imul eax, ecx
mov dword [esp + 0x78], eax
mov eax, dword [0x4a1430]
or eax, 0x22010801
mov dword [0x4a1430], eax
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x78]
jae 0x421286
mov eax, dword [0x4a0650]
imul eax, eax, 0xca26c645
mov dword [0x4a0650], eax
mov eax, dword [esp + 0x94]
dec eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x8c]
add ecx, eax
mov dword [esp + 0x8c], ecx
mov dx, word [0x4abb26]
mov ax, dx
imul eax, eax, 0x64c103e6
mov dx, ax
mov word [0x4b16f8], dx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x7c]
mov byte [esp + 0x4a], cl
jb 0x42123e
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x78]
setb cl
mov byte [esp + 0x4a], cl
mov al, byte [esp + 0x4a]
test al, 1
jne 0x42124f
jmp 0x421277
mov eax, dword [esp + 0x94]
add eax, 0xffffffff
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x7c]
add eax, dword [esp + 0x8c]
mov dword [esp + 0x8c], eax
jmp 0x421213
mov eax, dword [0x4a6198]
add eax, 0x9ad2ca7e
mov dword [0x4a6198], eax
mov eax, dword [0x497a30]
add eax, 0xf6dd1389
xor eax, 0x954c838b
cmp eax, 0x155c3c90
jg 0x421303
mov eax, 0x13f5b7ce
mov ecx, dword [0x4a6dbc]
mov dx, word [0x4abd26]
movsx esi, dx
add ecx, esi
cmp eax, ecx
jle 0x4212dc
mov ax, word [0x4acaba]
movsx ecx, ax
mov edx, dword [0x4a2f24]
imul edx, ecx
mov dword [0x4a2f24], edx
jmp 0x4212fe
mov eax, 0xbe4f6799
mov ecx, dword [0x4a30c0]
cmp eax, ecx
jne 0x4212f4
jmp 0x4212f9
jmp 0x4212f9
jmp 0x4212fe
jmp 0x421303
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x8c]
sub ecx, eax
mov dword [esp + 0x8c], ecx
mov eax, dword [0x4a8b50]
and eax, 0x6804090
mov dword [0x4a8b50], eax
mov eax, dword [esp + 0x90]
shl eax, 0x10
mov ecx, dword [esp + 0x94]
or eax, ecx
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xd8]
sub ecx, edx
mov edx, dword [esp + 0xb8]
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [0x4a2028]
imul eax, eax, 0x20a88880
mov dword [0x4a2028], eax
mov eax, dword [0x49fbd8]
mov ecx, eax
inc ecx
mov dword [0x49fbd8], ecx
mov ecx, dword [0x4a604c]
mov edx, dword [0x4a7ae8]
sar edx, 1
and ecx, edx
cmp eax, ecx
jne 0x42139f
mov eax, dword [0x49a79c]
mov cx, ax
mov word [0x4b3f5c], cx
jmp 0x4213bb
mov ax, word [0x4ab638]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x4ab638], ax
movsx ecx, ax
mov dword [0x49d66c], ecx
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov dword [0x4a3f78], 0xe270d506
lea eax, [esp + 0xa4]
xor ecx, ecx
mov edx, dword [0x4a7a60]
xor edx, 0xe19c3921
mov dword [0x4a7a60], edx
mov edx, dword [esp + 0xe0]
mov esi, dword [esp + 0xd8]
sub edx, esi
mov esi, dword [esp + 0xb8]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x4a62a8]
and edx, 0xff93ca34
mov dword [0x4a62a8], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x44], ecx
call fcn.0044b9d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x42145b
jmp 0x421cc8
mov eax, 0xfb8031b4
mov ecx, dword [0x4a99fc]
shl ecx, 4
cmp eax, ecx
jl 0x421485
mov eax, dword [0x4a4e68]
or eax, 0x519c9e2
mov dword [0x4a4e68], eax
jmp 0x421494
mov eax, dword [0x497e40]
or eax, 0xd2340db8
mov dword [0x497e40], eax
cmp dword [esp + 0xd8], 1
jge 0x4214ad
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x4214c5
mov eax, dword [esp + 0xd8]
sub eax, 1
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0xac]
mov dword [ecx], eax
mov eax, dword [0x4a2334]
mov ecx, eax
inc ecx
mov dword [0x4a2334], ecx
mov ecx, dword [0x4a86a8]
add eax, ecx
mov dx, word [0x4b075c]
mov cx, dx
xor ecx, eax
mov dx, cx
mov word [0x4b075c], dx
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xc4]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 4], eax
mov eax, dword [0x4a51c8]
mov ecx, eax
dec ecx
mov dword [0x4a51c8], ecx
xor eax, 0x20a6cbdb
mov ecx, dword [0x4a6900]
add ecx, 0x76025c4c
xor ecx, 0x11a8bbf6
cmp eax, ecx
jne 0x421555
mov eax, dword [0x4aa420]
and eax, 0x472d36b1
mov dword [0x4aa420], eax
lea eax, [esp + 0xa4]
mov ecx, dword [esp + 0xe0]
sub ecx, dword [esp + 0xd8]
sub ecx, 1
mov edx, dword [esp + 0xb8]
mov ecx, dword [edx + ecx*4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040f6a0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x42159c
jmp 0x421cc8
lea eax, [esp + 0x98]
xor ecx, ecx
mov dx, word [0x4b4138]
movsx esi, dx
shl esi, 3
or esi, 0x14181464
mov edi, dword [0x497d50]
sub edi, esi
mov dword [0x497d50], edi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x3c], ecx
call fcn.0044b9d0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4215ef
jmp 0x421cc8
mov eax, dword [0x4a0d88]
and eax, 0x344d1e48
mov dword [0x4a0d88], eax
cmp dword [esp + 0xe0], 2
jge 0x421617
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x42162f
mov eax, dword [esp + 0xe0]
sub eax, 2
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xa0]
mov dword [ecx], eax
mov dx, word [0x4add62]
mov ax, dx
imul eax, eax, 0xc534714f
mov dx, word [0x4b25d8]
movsx ecx, dx
shr ecx, 1
and eax, ecx
mov dx, word [0x4b2b4a]
mov cx, dx
or ecx, eax
mov dx, cx
mov word [0x4b2b4a], dx
cmp dword [esp + 0xe0], 1
jge 0x421689
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x4216a1
mov eax, dword [esp + 0xe0]
sub eax, 1
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, 0xba7eebe7
mov edx, dword [esp + 0xa0]
mov dword [edx + 4], eax
mov eax, dword [0x49f14c]
inc eax
mov dword [0x49f14c], eax
mov edx, dword [0x49ee90]
sub eax, edx
cmp ecx, eax
je 0x421716
mov eax, 0x3217a03f
mov cx, word [0x4ab6b0]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4ab6b0], cx
movsx edx, cx
sub eax, edx
cmp eax, 0x8608df0a
jl 0x421711
mov ax, word [0x4b29e4]
mov cx, ax
add ecx, 0x7fabe5c8
mov ax, cx
mov word [0x4b29e4], ax
jmp 0x421716
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xa0]
mov dword [ecx + 8], eax
mov dx, word [0x4abdd4]
mov ax, dx
inc eax
mov dx, ax
mov word [0x4abdd4], dx
movsx eax, dx
add eax, 0xafc6b4d1
and eax, 0x7aa498f1
mov ecx, dword [0x49f310]
add ecx, eax
mov dword [0x49f310], ecx
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00443730
cmp eax, 0
jg 0x4213e5
lea eax, [esp + 0xa4]
lea ecx, [esp + 0xbc]
mov edx, dword [0x4a3818]
and edx, 0xf58316bb
mov dword [0x4a3818], edx
mov edx, dword [esp + 0xe0]
sub edx, dword [esp + 0xd8]
sub edx, 1
mov esi, dword [esp + 0xb8]
mov edx, dword [esi + edx*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040f6a0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4217e4
jmp 0x421cc8
lea eax, [esp + 0xa4]
mov ecx, dword [0x4a6f14]
xor ecx, 0x7e67db7c
mov dword [0x4a6f14], ecx
mov ecx, dword [esp + 0xe0]
sub ecx, dword [esp + 0xd8]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043e500
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421832
jmp 0x421cc8
mov eax, 0x6840c261
mov cx, word [0x4b03e0]
movsx edx, cx
imul edx, edx, 0x54dfced1
or edx, 0xae272583
cmp eax, edx
jl 0x421869
mov eax, dword [0x49ae38]
and eax, 0xd14af7b7
mov dword [0x49ae38], eax
jmp 0x421884
mov eax, dword [0x4a7c80]
sar eax, 9
and eax, 0x84183f64
mov ecx, dword [0x4a5118]
add ecx, eax
mov dword [0x4a5118], ecx
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0043b490
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4218b7
jmp 0x421cc8
lea eax, [esp + 0xc8]
xor ecx, ecx
mov edx, dword [0x49e558]
imul edx, edx, 0xe551b39c
mov dword [0x49e558], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x30], ecx
call fcn.0041ef80
cmp eax, 0
jge 0x421ab3
lea eax, [esp + 0xa4]
lea ecx, [esp + 0xbc]
mov dx, word [0x4b0f00]
mov si, dx
xor esi, 0x1084
mov dx, si
mov word [0x4b0f00], dx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00448160
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421938
jmp 0x421cc8
lea eax, [esp + 0xa4]
mov ecx, dword [0x4a8278]
imul ecx, ecx, 0xf7eff937
mov dword [0x4a8278], ecx
mov ecx, dword [esp + 0xe0]
sub ecx, dword [esp + 0xd8]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0043e500
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x421986
jmp 0x421cc8
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xa4]
mov edx, dword [0x49f848]
mov si, word [0x4afb08]
mov di, si
and edi, edx
mov si, di
mov word [0x4afb08], si
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00423ce0
mov dword [esp + 0xe4], eax
cmp eax, 0
je 0x4219d5
jmp 0x421cc8
mov eax, dword [0x4a5c04]
add eax, 0x2080401
mov dword [0x4a5c04], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov si, word [0x4afe24]
mov ax, si
dec eax
mov di, ax
mov word [0x4afe24], di
movsx eax, si
mov ecx, dword [0x4aa344]
mov edx, dword [0x4a0954]
not edx
sub ecx, edx
and eax, ecx
mov ecx, dword [0x49ce04]
and ecx, 0x366d3105
cmp eax, ecx
jg 0x421a90
mov eax, 0x7c613b7
mov ecx, dword [0x4a11a8]
inc ecx
mov dword [0x4a11a8], ecx
imul ecx, ecx, 0x223609db
imul ecx, ecx, 0xce0b6074
cmp eax, ecx
jge 0x421a8b
mov eax, 0xa380527e
mov ecx, dword [0x4aa4cc]
and ecx, 0xd1b9b5b
cmp eax, ecx
jge 0x421a86
jmp 0x421a86
jmp 0x421a8b
jmp 0x421aae
mov ax, word [0x4adc3c]
movsx ecx, ax
add ecx, 0x39b85510
mov edx, dword [0x499c54]
imul edx, ecx
mov dword [0x499c54], edx
jmp 0x421ab3
mov eax, dword [0x4a2510]
add eax, 0x9e6fb8e6
mov dword [0x4a2510], eax
mov eax, dword [esp + 0xe0]
add eax, 0xffffffff
mov dword [esp + 0xe0], eax
jmp 0x420ba2
mov eax, dword [0x497f6c]
not eax
and eax, 0xd6124a08
mov ecx, dword [0x4a1d80]
xor ecx, eax
mov dword [0x4a1d80], ecx
cmp dword [esp + 0xe8], 0
je 0x421b7a
mov eax, dword [0x49a9b4]
and eax, 0x7bef8b2f
mov dword [0x49a9b4], eax
mov eax, dword [esp + 0xe8]
mov ecx, esp
lea edx, [esp + 0xb0]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.00448160
mov ecx, dword [0x49aa7c]
or ecx, 0x536c26c4
mov dword [0x49aa7c], ecx
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf4]
mov edx, dword [edx]
imul ecx, edx
mov edx, dword [esp + 0xe8]
mov dword [edx], ecx
mov ecx, dword [0x497ae4]
imul ecx, ecx, 0xb408886a
mov edx, 0xbcfa6ab5
sub edx, ecx
mov si, dx
mov word [0x4b1cf2], si
mov dword [esp + 0x2c], eax
mov ax, word [0x4b242a]
mov cx, ax
add ecx, 0x1ea17d4e
mov ax, cx
mov word [0x4b242a], ax
cmp dword [esp + 0xec], 0
je 0x421c99
mov eax, 0x51c5efe9
mov word [0x4ac7f2], 0xfdae
mov ecx, dword [esp + 0xd4]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xc8]
mov dword [edx], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
call fcn.00402280
mov ecx, dword [0x49d524]
add ecx, 0x42faf565
mov dword [0x49d524], ecx
mov ecx, dword [esp + 0xec]
mov edx, esp
mov esi, dword [esp + 0x24]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x20], eax
call fcn.00448160
mov ecx, dword [0x49e8a0]
mov edx, dword [esp + 0x28]
cmp edx, ecx
mov dword [esp + 0x1c], eax
jge 0x421c2b
mov ax, word [0x4b3f60]
mov cx, ax
and ecx, 0x9089
mov ax, cx
mov word [0x4b3f60], ax
xor eax, eax
mov ecx, dword [esp + 0xf0]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xec]
mov dword [edx], ecx
mov si, word [0x4aca86]
mov cx, si
add ecx, 0x7799cb10
mov si, cx
mov word [0x4aca86], si
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.0041ef80
cmp eax, 0
jne 0x421c8a
mov eax, dword [esp + 0xec]
mov dword [eax], 1
mov eax, dword [0x49b3c4]
add eax, 0xec0963bf
mov dword [0x49b3c4], eax
mov eax, 0x38b91808
mov ecx, dword [0x49d994]
xor ecx, 0xffffffff
sub eax, ecx
cmp eax, 0x851b0525
jle 0x421cc3
mov eax, dword [0x4a19fc]
add eax, 0x3a15f7c1
mov dword [0x4a19fc], eax
jmp 0x421cc8
mov eax, esp
lea ecx, [esp + 0x98]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xa4]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xbc]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xc8]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.004448f0
mov dx, word [0x4ad35a]
movsx eax, dx
shl eax, 3
mov ecx, dword [0x49dd94]
xor eax, ecx
xor eax, 0x492956e8
mov dword [0x49dd94], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xf8]
add esp, 0xfc
pop esi
pop edi
pop ebx
ret