Function at 0x422fe0
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, 0x3855a563
mov dword [esp + 0xec], eax
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe0], esi
mov eax, dword [0x496c84]
add eax, 0x7334f5
mov dword [0x496c84], eax
mov dword [0x494a6c], 0x540c688e
mov eax, dword [0x494720]
inc eax
mov dword [0x494720], eax
cmp edi, eax
jl 0x423061
mov eax, dword [0x496b10]
xor eax, 0xe44aa6fe
mov dword [0x496b10], 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.00430720
cmp eax, 0
jne 0x423097
mov dword [esp + 0xf0], 0xfffffff4
jmp 0x424997
mov eax, dword [0x496068]
or eax, 0xcd0421f
mov dword [0x496068], eax
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.00403060
mov dx, word [0x49987e]
mov ax, dx
inc eax
mov dx, ax
mov word [0x49987e], dx
movsx eax, dx
add eax, 0x271ae68f
xor eax, 0x7a3b2fd0
mov ecx, dword [0x496f24]
and ecx, eax
mov dword [0x496f24], ecx
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040f950
cmp eax, 0
jge 0x423212
mov eax, dword [0x49550c]
add eax, 0x7c684f40
mov ecx, dword [0x494de4]
or eax, ecx
or eax, 0xf815c5b6
mov dword [0x494de4], eax
cmp dword [esp + 0xe0], 0
je 0x423199
xor eax, eax
mov ecx, dword [esp + 0xe0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x68], eax
call fcn.004490f0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x423194
jmp 0x424913
jmp 0x423199
mov eax, dword [0x495a60]
add eax, 0xe1ee41f4
mov ecx, dword [0x4950b4]
sub ecx, eax
mov dword [0x4950b4], ecx
cmp dword [esp + 0xe4], 0
je 0x4231f3
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b860
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4231ee
jmp 0x424913
jmp 0x4231f3
mov eax, dword [0x493300]
xor eax, 0xa8a79bb6
mov dword [0x493300], eax
mov dword [esp + 0xf0], 0
jmp 0x424997
lea eax, [esp + 0xc0]
mov cx, word [0x49817a]
mov dx, cx
and edx, 0xf57f
mov cx, dx
mov word [0x49817a], cx
mov edx, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040b860
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x42325b
jmp 0x424913
mov eax, 0x9122cbe4
mov ecx, dword [0x492a8c]
mov edx, ecx
dec edx
mov dword [0x492a8c], edx
cmp eax, ecx
jle 0x42328f
mov ax, word [0x499612]
mov cx, ax
imul ecx, ecx, 0x2902cf3d
mov ax, cx
mov word [0x499612], ax
lea eax, [esp + 0xb4]
mov ecx, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b860
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4232be
jmp 0x424913
mov eax, 0x80410038
mov ecx, dword [0x494110]
imul ecx, ecx, 0x736d7b83
mov edx, dword [0x491e34]
add ecx, edx
mov edx, dword [0x492358]
sub edx, ecx
mov dword [0x492358], edx
mov dword [esp + 0xb4], 1
mov dword [esp + 0xc0], 1
mov ecx, dword [0x496b74]
xor ecx, 0xffffffff
or ecx, 0x7bbd2e25
cmp eax, ecx
jle 0x423322
mov eax, dword [0x493f3c]
imul eax, eax, 0xaffb7ffa
mov dword [0x493f3c], eax
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00450ce0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x423357
jmp 0x424913
mov eax, 0xc0eef862
mov cx, word [0x4979fa]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4979fa], cx
movsx edx, cx
and edx, 0x903e2e42
cmp eax, edx
jl 0x423391
mov eax, dword [0x49353c]
add eax, 0xa93c59b0
mov dword [0x49353c], eax
lea eax, [esp + 0xa8]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x64], ecx
call fcn.004490f0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4233c3
jmp 0x424913
lea eax, [esp + 0x9c]
mov ecx, 2
mov edx, dword [0x4920a0]
mov esi, edx
dec esi
mov dword [0x4920a0], esi
mov dword [0x497168], edx
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x60], ecx
call fcn.00450ce0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x42340d
jmp 0x424913
lea eax, [esp + 0x90]
mov ecx, 3
mov edx, dword [0x4930d0]
not edx
mov esi, dword [0x4936c8]
sar esi, 2
sub edx, esi
xor edx, 0xe7d382c3
mov esi, dword [0x492534]
and esi, edx
mov dword [0x492534], esi
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x5c], ecx
call fcn.00450ce0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x423469
jmp 0x424913
mov eax, dword [0x49434c]
xor eax, 0x1a487e80
mov ecx, dword [0x4965ac]
or ecx, eax
mov dword [0x4965ac], ecx
mov eax, esp
lea ecx, [esp + 0xb4]
mov dword [eax], ecx
call fcn.004098d0
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 [0x4969d4]
not eax
mov ecx, dword [0x494dec]
xor ecx, 0x3a79dfb2
or eax, ecx
mov ecx, dword [0x493e90]
add ecx, eax
mov dword [0x493e90], ecx
cmp dword [esp + 0xcc], 0x1f
jge 0x4235e2
lea eax, [esp + 0xc0]
mov cx, word [0x499822]
mov dx, cx
dec edx
mov cx, dx
mov word [0x499822], cx
movsx edx, cx
or edx, 0x7a9ad666
mov esi, dword [0x4960c0]
and esi, edx
mov dword [0x4960c0], esi
mov edx, dword [esp + 0xcc]
mov esi, 0x1f
sub esi, edx
mov dword [esp + 0xcc], esi
mov edx, dword [0x495ee4]
and edx, 0xdacc1637
mov dword [0x495ee4], edx
mov edx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00411f30
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x42355c
jmp 0x424913
lea eax, [esp + 0xb4]
mov cx, word [0x497f94]
mov dx, cx
inc edx
mov si, dx
mov word [0x497f94], si
movsx edx, cx
and edx, 0x8bda8170
mov dword [0x493bac], edx
mov edx, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00411f30
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4235af
jmp 0x424913
mov eax, dword [0x492f14]
dec eax
mov dword [0x492f14], eax
and eax, 0xc61d
mov ecx, dword [0x4955ac]
or eax, ecx
mov dx, word [0x499a0c]
mov cx, dx
and ecx, eax
mov dx, cx
mov word [0x499a0c], dx
jmp 0x4235ed
mov dword [esp + 0xcc], 0
mov ax, word [0x498f42]
mov cx, ax
add ecx, 0xfad08c93
mov ax, cx
mov word [0x498f42], ax
mov ecx, dword [esp + 0xc4]
dec ecx
mov dword [esp + 0xd4], ecx
mov ecx, dword [0x495830]
shl ecx, 7
mov ax, word [0x497d68]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x497d68], ax
mov ecx, dword [esp + 0xb8]
dec ecx
mov dword [esp + 0xd0], ecx
mov ecx, dword [0x49639c]
dec ecx
mov dword [0x49639c], ecx
imul ecx, ecx, 0x1afdb0b5
mov ax, word [0x4984d0]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x4984d0], 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.00411f30
mov ecx, dword [0x492194]
xor ecx, 0xf67c47de
mov dword [0x492194], ecx
mov dword [esp + 0x58], eax
lea eax, [esp + 0xc0]
lea ecx, [esp + 0xb4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00451b30
cmp eax, 0
jl 0x423743
mov eax, dword [0x496004]
add eax, 0x52e0eda5
mov dword [0x496004], 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 [0x495ea0]
mov ecx, 0x648ec1a
sub ecx, eax
mov eax, dword [0x496688]
xor eax, ecx
mov dword [0x496688], 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.004481d0
mov ecx, dword [0x493284]
add ecx, 0x10040826
mov dword [0x493284], ecx
mov dword [esp + 0x54], eax
jmp 0x4236a3
mov eax, dword [0x494a54]
or eax, 0x57bb5344
mov dword [0x494a54], 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.00451600
mov ecx, dword [0x496534]
or ecx, 0x1ba52a8a
mov dword [0x496534], 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 0x424634
mov ax, word [0x498c1e]
mov cx, ax
imul ecx, ecx, 0x3d346064
mov ax, cx
mov word [0x498c1e], ax
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xc8]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xbc]
cmp ecx, dword [esi + edx*4]
jb 0x423814
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 0x423eb4
mov eax, 0x571bf2a6
mov ecx, dword [0x495d28]
imul ecx, ecx, 0x64e0a3f8
add ecx, 0x1ba705d9
mov edx, dword [0x49287c]
sub edx, ecx
mov dword [0x49287c], edx
mov si, word [0x4988ea]
movsx ecx, si
not ecx
mov edx, dword [0x492674]
sub ecx, edx
cmp eax, ecx
jle 0x4238a3
mov ax, word [0x497930]
movsx ecx, ax
xor ecx, 0x5d2eecb4
mov edx, dword [0x494488]
mov esi, edx
dec esi
mov dword [0x494488], esi
mov ax, word [0x498a88]
movsx esi, ax
add edx, esi
cmp ecx, edx
jne 0x42389e
mov ax, word [0x497632]
mov cx, ax
or ecx, 0x5040
mov ax, cx
mov word [0x497632], ax
jmp 0x4238a3
mov eax, 0x86715dd4
mov ecx, dword [0x496270]
add ecx, 0xb078ef85
mov dword [0x496270], ecx
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xbc]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x74], ecx
mov si, word [0x4994fa]
mov cx, si
inc ecx
mov si, cx
mov word [0x4994fa], si
movsx ecx, si
sub ecx, 0xfeb7c323
cmp eax, ecx
je 0x42391e
mov eax, dword [0x4954bc]
mov ecx, eax
inc ecx
mov dword [0x4954bc], ecx
mov dx, word [0x499220]
mov cx, dx
and eax, ecx
and eax, 0x5365
mov dx, ax
mov word [0x499220], dx
mov eax, 0x4fb46285
movzx ecx, word [esp + 0x74]
mov dword [esp + 0x7c], ecx
mov ecx, dword [0x4929c8]
add ecx, 0x51eb65e1
mov dword [0x4929c8], ecx
movzx ecx, word [esp + 0x76]
mov dword [esp + 0x78], ecx
mov ecx, dword [0x494568]
imul ecx, ecx, 0xb3c1038a
mov dword [0x494568], 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 [0x496aa4]
mov di, word [0x498ce6]
movsx ecx, di
sub eax, ecx
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jle 0x4239f4
mov eax, 0xbff7fdd7
mov ecx, dword [0x494704]
xor ecx, 0xffffffff
and ecx, 0xda2c0de1
and ecx, 0x6ea567ac
cmp eax, ecx
jne 0x4239ef
mov eax, 0xf9767795
mov cx, word [0x499614]
movsx edx, cx
and edx, 0x59ffb71a
cmp eax, edx
jl 0x4239ea
jmp 0x4239ea
jmp 0x4239ef
jmp 0x4239f4
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 [0x49526c]
dec eax
mov dword [0x49526c], eax
and eax, 0xc89df79d
mov dword [0x496cc0], eax
mov eax, dword [esp + 0x80]
shl eax, 0x10
mov dword [esp + 0x80], eax
mov eax, dword [0x4960ec]
or eax, 0xc2b166aa
mov dword [0x4960ec], eax
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 [0x495db8]
and eax, 0xc80d3947
mov dword [0x495db8], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov si, word [0x498b6a]
mov ax, si
and eax, 0x86a4
mov si, ax
mov word [0x498b6a], si
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x70]
jae 0x423bd8
mov eax, 0x96619f70
mov ecx, dword [0x492be0]
not ecx
mov edx, dword [0x493ba0]
imul ecx, edx
imul ecx, ecx, 0x9a0fc9b6
mov dword [0x493ba0], ecx
mov ecx, dword [esp + 0x88]
dec ecx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x80]
add edx, ecx
mov dword [esp + 0x80], edx
mov ecx, dword [0x4923c0]
shl ecx, 2
cmp eax, ecx
je 0x423b29
mov eax, dword [0x492788]
add eax, 0x6ebe830f
mov dword [0x492788], eax
jmp 0x423b38
mov eax, dword [0x4957dc]
add eax, 0xe675d24
mov dword [0x4957dc], eax
jmp 0x423b3d
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x80]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x47], cl
jb 0x423b68
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 0x423b79
jmp 0x423ba1
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 0x423b3d
mov eax, dword [0x4921b4]
sar eax, 2
mov cx, word [0x499294]
mov dx, cx
dec edx
mov cx, dx
mov word [0x499294], cx
movsx edx, cx
mov esi, 0xe321d8f8
sub esi, edx
and eax, esi
mov edx, dword [0x495ed0]
or edx, eax
mov dword [0x495ed0], edx
mov eax, dword [0x494dcc]
or eax, 0x6186b455
mov dword [0x494dcc], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x80]
sub ecx, eax
mov dword [esp + 0x80], ecx
mov eax, dword [0x494198]
imul eax, eax, 0xc52a7592
add eax, 0x653ffea1
mov ecx, dword [0x4957b4]
xor ecx, eax
mov dword [0x4957b4], ecx
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
xor edx, edx
div ecx
mov dword [esp + 0x8c], eax
mov si, word [0x497d46]
mov ax, si
or eax, 0xdda1
mov si, ax
mov word [0x497d46], si
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 [0x496238]
sar eax, 1
add eax, 0xa3d6618c
and eax, 0xc169defd
mov ecx, dword [0x496ac8]
mov edx, dword [0x491fe0]
dec edx
mov dword [0x491fe0], edx
add ecx, edx
or ecx, 0x4fa58560
cmp eax, ecx
jge 0x423ca9
mov eax, dword [0x493730]
and eax, 0x84146355
mov dword [0x493730], eax
mov eax, dword [esp + 0x84]
shl eax, 0x10
mov dword [esp + 0x84], eax
mov eax, dword [0x491f9c]
xor eax, 0xbac5b368
mov dword [0x491f9c], 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 word [0x497ec2], 0xf999
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x7c]
imul eax, ecx
mov dword [esp + 0x70], eax
mov dx, word [0x497c50]
mov ax, dx
add eax, 0x29d55243
mov dx, ax
mov word [0x497c50], dx
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x70]
jae 0x423e0a
mov eax, dword [0x49516c]
inc eax
mov dword [0x49516c], eax
xor eax, 0x58320c1
cmp eax, 0xe15ee86c
jle 0x423d5c
mov eax, dword [0x496308]
imul eax, eax, 0xc7609cfc
mov dword [0x496308], eax
mov eax, dword [esp + 0x8c]
dec eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x84]
add ecx, eax
mov dword [esp + 0x84], ecx
mov eax, dword [0x493f78]
and eax, 0x8c35246
mov dword [0x493f78], eax
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x84]
cmp eax, dword [esp + 0x74]
mov byte [esp + 0x46], cl
jb 0x423db9
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 0x423dca
jmp 0x423df2
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 0x423d8e
mov eax, dword [0x496e54]
and eax, 0x1e62528a
mov ecx, dword [0x492bf4]
xor ecx, eax
mov dword [0x492bf4], ecx
mov eax, 0xa169533b
mov ecx, dword [0x492d08]
mov edx, dword [0x494930]
not edx
add edx, 0x9fc16d5d
or ecx, edx
mov dword [0x4940bc], ecx
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x84]
sub edx, ecx
mov dword [esp + 0x84], edx
mov si, word [0x498494]
movsx ecx, si
cmp eax, ecx
jg 0x423e69
mov ax, word [0x497fbc]
mov cx, ax
xor ecx, 0xc3bf
mov ax, cx
mov word [0x497fbc], ax
mov eax, dword [esp + 0x88]
shl eax, 0x10
mov ecx, dword [esp + 0x8c]
or eax, ecx
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd0]
sub ecx, edx
mov edx, dword [esp + 0xb0]
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [0x4950f8]
xor eax, 0x900b3400
or eax, 0x2fe48b5d
mov ecx, dword [0x49223c]
sub ecx, eax
mov dword [0x49223c], ecx
mov ax, word [0x4974a6]
mov cx, ax
xor ecx, 0x4861
or ecx, 0x349c
mov ax, word [0x49939c]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x49939c], 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 [0x494748]
mov edx, ecx
dec edx
mov dword [0x494748], edx
add ecx, 0x59667066
and ecx, 0x1991
mov ax, word [0x498f36]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x498f36], ax
lea eax, [esp + 0x9c]
xor ecx, ecx
mov edx, dword [0x492dd8]
add edx, 0x98a2a190
mov si, word [0x49778e]
mov di, si
xor edi, edx
mov si, di
mov word [0x49778e], si
mov edx, dword [esp + 0xd8]
mov edi, dword [esp + 0xd0]
sub edx, edi
mov edi, dword [esp + 0xb0]
mov ebx, dword [edi + edx*4 - 4]
dec ebx
mov dword [edi + edx*4 - 4], ebx
mov edx, dword [0x4946e4]
and edx, 0x9d0eed8a
mov dword [0x492854], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.004490f0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x423fb2
jmp 0x424913
mov eax, dword [0x494098]
or eax, 0xe202b02c
mov dword [0x494098], eax
cmp dword [esp + 0xd0], 1
jge 0x423fda
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x423ff2
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 [0x493664]
inc eax
mov dword [0x493664], eax
xor eax, 0x3097eafd
mov edx, dword [0x4938c8]
sub edx, eax
mov dword [0x4938c8], 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 [0x498336]
movsx eax, si
sar eax, 8
mov edx, dword [0x49450c]
xor edx, eax
mov dword [0x49450c], edx
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.00416a00
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x42409a
jmp 0x424913
lea eax, [esp + 0x90]
xor ecx, ecx
mov edx, dword [0x494d04]
imul edx, edx, 0xc081c06d
mov dword [0x494d04], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.004490f0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4240de
jmp 0x424913
mov eax, 0x56dc2532
mov ecx, dword [0x496fd8]
sub eax, ecx
sub eax, 0x21eede29
cmp eax, 0xd0999b2
jl 0x424129
mov eax, 0x435952d3
mov ecx, dword [0x4961ac]
sub ecx, 0xe3679110
cmp eax, ecx
jg 0x424124
mov eax, dword [0x495180]
imul eax, eax, 0xbbbd8980
mov dword [0x495180], eax
jmp 0x424129
cmp dword [esp + 0xd8], 2
jge 0x424142
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x42415a
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, 0x20690346
mov edx, dword [esp + 0x98]
mov dword [edx], eax
mov eax, dword [0x494498]
xor eax, 0xffffffff
imul eax, eax, 0xeb901a25
cmp ecx, eax
jg 0x4241a4
mov eax, dword [0x492f9c]
imul eax, eax, 0xa92a3dde
mov ecx, dword [0x4945e4]
xor eax, ecx
xor eax, 0x5be353bd
mov dword [0x4945e4], eax
jmp 0x4241fd
mov eax, 0x874e3432
mov cx, word [0x4985a0]
mov dx, cx
inc edx
mov cx, dx
mov word [0x4985a0], cx
movsx edx, cx
imul edx, edx, 0xa90ea064
or edx, 0x1a1efffc
cmp eax, edx
jle 0x4241f8
mov eax, dword [0x492240]
mov ecx, eax
inc ecx
mov dword [0x492240], ecx
cmp eax, 0xe1c63a1a
jl 0x4241f3
jmp 0x4241f3
jmp 0x4241f8
jmp 0x4241fd
cmp dword [esp + 0xd8], 1
jge 0x424216
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x42422e
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 [0x496e00]
add eax, 0x899ed057
mov dword [0x496e00], 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 [0x4970f8]
add eax, 0x17228e30
mov dx, ax
mov word [0x49837c], dx
lea eax, [esp + 0x9c]
lea ecx, [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00451b30
cmp eax, 0
jg 0x423f2c
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x49419c]
xor edx, 0x5c6cc353
mov dword [0x49419c], edx
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.00416a00
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4242fd
jmp 0x424913
mov eax, 0x6dd7856f
mov ecx, dword [0x4965cc]
sub ecx, 0x30a00bd4
cmp eax, ecx
je 0x424333
mov eax, dword [0x49621c]
imul eax, eax, 0xcb41e786
mov ecx, dword [0x4945f0]
lea eax, [eax + ecx + 0xd147b69]
mov dword [0x4945f0], eax
lea eax, [esp + 0x9c]
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.00411f30
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x42436f
jmp 0x424913
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov edx, dword [0x493918]
sar edx, 1
mov esi, 0xb804b3a3
sub esi, edx
mov dword [0x494468], esi
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004481d0
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x4243b7
jmp 0x424913
lea eax, [esp + 0xc0]
xor ecx, ecx
mov dx, word [0x49980a]
mov si, dx
add esi, 0x937fb76a
mov dx, si
mov word [0x49980a], dx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.00430720
cmp eax, 0
jge 0x42460f
lea eax, [esp + 0x9c]
lea ecx, [esp + 0xb4]
mov edx, dword [0x496a84]
imul edx, edx, 0xb674f868
mov dword [0x496a84], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b860
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x424438
jmp 0x424913
lea eax, [esp + 0x9c]
mov ecx, dword [0x494bc4]
mov edx, ecx
dec edx
mov dword [0x494bc4], edx
add ecx, 0x5c744ce3
xor ecx, 0xcfacd911
mov edx, dword [0x491e78]
sub edx, ecx
mov dword [0x491e78], edx
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.00411f30
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x42449d
jmp 0x424913
mov ax, word [0x499b94]
movsx ecx, ax
xor ecx, 0x31a2febe
cmp ecx, 0xffefff3f
jle 0x4244cd
mov eax, dword [0x49291c]
imul eax, eax, 0x44014010
mov dword [0x49291c], eax
jmp 0x42452e
mov eax, 0x8c4fc3f4
mov ecx, 0xfc6d6927
mov dx, word [0x497700]
mov si, dx
inc esi
mov dx, si
mov word [0x497700], dx
movsx esi, dx
mov edi, dword [0x493ac8]
sub ecx, edi
and esi, ecx
cmp eax, esi
jl 0x424529
mov ax, word [0x498b40]
movsx ecx, ax
mov edx, 0xe7f2579d
sub edx, ecx
mov ecx, dword [0x494114]
cmp edx, ecx
je 0x424524
jmp 0x424524
jmp 0x424529
jmp 0x42452e
lea eax, [esp + 0xc0]
lea ecx, [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0041f710
mov dword [esp + 0xdc], eax
cmp eax, 0
je 0x424561
jmp 0x424913
mov eax, 0x8c5c069a
mov ecx, dword [0x49425c]
sar ecx, 4
mov edx, dword [0x492de4]
sar edx, 5
and ecx, edx
cmp eax, ecx
jl 0x42459f
mov ax, word [0x498cec]
mov cx, ax
xor ecx, 0xd64d
mov ax, cx
mov word [0x498cec], ax
jmp 0x4245bc
mov ax, word [0x4993aa]
movsx ecx, ax
imul ecx, ecx, 0xae37ca21
mov edx, dword [0x4956cc]
add edx, ecx
mov dword [0x4956cc], edx
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 [0x496710]
sar eax, 3
imul eax, eax, 0x7a764fb3
mov ecx, dword [0x496310]
shl ecx, 4
cmp eax, ecx
jge 0x42460a
mov eax, dword [0x493274]
xor eax, 0x4002201
mov dword [0x493274], eax
jmp 0x42460f
mov eax, dword [0x494f1c]
and eax, 0x43a4a0
mov dword [0x494f1c], eax
mov eax, dword [esp + 0xd8]
add eax, 0xffffffff
mov dword [esp + 0xd8], eax
jmp 0x42379c
mov eax, dword [0x497068]
mov ecx, eax
inc ecx
mov dword [0x497068], ecx
mov ecx, dword [0x496744]
lea eax, [eax + ecx + 0x248f1cd2]
mov dword [0x496744], eax
cmp dword [esp + 0xe0], 0
je 0x42474a
mov eax, dword [0x496130]
mov ecx, eax
inc ecx
mov dword [0x496130], ecx
xor eax, 0x3408bdae
xor eax, 0x2627964e
cmp eax, 0xe5270822
jg 0x4246ea
mov eax, dword [0x491e34]
sar eax, 8
mov ecx, dword [0x492240]
mov dx, word [0x4980c8]
movsx esi, dx
xor esi, 0xffffffff
add ecx, esi
or eax, ecx
cmp eax, 0x48622ae
je 0x4246c3
mov eax, dword [0x493d8c]
add eax, 0xe2aed4ed
mov dword [0x493d8c], eax
jmp 0x4246e5
mov eax, dword [0x493870]
mov ecx, 0xbe837a6d
sub ecx, eax
mov dx, word [0x499922]
mov ax, dx
sub eax, ecx
mov dx, ax
mov word [0x499922], dx
jmp 0x4246ea
mov eax, dword [esp + 0xe0]
mov ecx, esp
lea edx, [esp + 0xa8]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0040b860
mov ecx, dword [0x495250]
or ecx, 0x6339481f
mov dword [0x495250], 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 ecx, dword [0x4929c8]
or ecx, 0x7303333b
mov dword [0x4929c8], ecx
mov dword [esp + 0x28], eax
mov eax, dword [0x493a68]
or eax, 0xc9319985
mov dword [0x493a68], eax
cmp dword [esp + 0xe4], 0
je 0x4248e8
mov eax, dword [0x496624]
and eax, 0x6ef6ae5
mov dword [0x496624], eax
mov eax, dword [esp + 0xcc]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc0]
mov dword [ecx], eax
call fcn.00451600
mov ecx, dword [0x492e34]
or ecx, 0xd1ca92e0
cmp ecx, 0x72d3029c
mov dword [esp + 0x24], eax
je 0x4247c6
mov eax, dword [0x493210]
not eax
add eax, 0xb75028b4
mov ecx, dword [0x4956dc]
or ecx, eax
mov dword [0x4956dc], ecx
mov eax, dword [esp + 0xe4]
mov ecx, esp
lea edx, [esp + 0xc0]
mov dword [ecx + 4], edx
mov dword [ecx], eax
call fcn.0040b860
mov ecx, dword [0x495d48]
shl ecx, 1
or ecx, 0x7af21041
cmp ecx, 0x6b5e9fa0
mov dword [esp + 0x20], eax
jg 0x424821
mov eax, dword [0x495e90]
mov ecx, eax
inc ecx
mov dword [0x495e90], ecx
mov ecx, dword [0x494ab8]
lea eax, [ecx + eax + 1]
mov dword [0x494ab8], eax
jmp 0x424830
mov eax, dword [0x492ccc]
and eax, 0x5ffdbe63
mov dword [0x492ccc], eax
xor eax, eax
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xe4]
mov dword [edx], ecx
mov si, word [0x497e80]
movsx ecx, si
mov si, word [0x498e2a]
movsx edx, si
lea ecx, [ecx + edx + 0x30be69ac]
mov edx, dword [0x495210]
and edx, ecx
mov dword [0x495210], edx
mov ecx, dword [esp + 0xe4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x1c], eax
call fcn.00430720
cmp eax, 0
jne 0x42489e
mov eax, dword [esp + 0xe4]
mov dword [eax], 1
mov eax, dword [0x492a48]
add eax, 0xea9a6b92
mov cx, word [0x497936]
mov dx, cx
inc edx
mov si, dx
mov word [0x497936], si
movsx edx, cx
imul edx, edx, 0x654ff325
add edx, 0xc2e71644
cmp eax, edx
jg 0x4248e3
mov eax, dword [0x4937d8]
add eax, 0xca577ab0
mov dword [0x4937d8], eax
jmp 0x4248e8
mov ax, word [0x499004]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x499004], ax
movsx ecx, ax
add ecx, 0x93d5d7d4
mov edx, dword [0x495c5c]
imul edx, ecx
mov dword [0x495c5c], edx
mov eax, 0x3d7aea58
mov ecx, esp
lea edx, [esp + 0x90]
mov dword [ecx + 0x10], edx
lea edx, [esp + 0x9c]
mov dword [ecx + 0xc], edx
lea edx, [esp + 0xa8]
mov dword [ecx + 8], edx
lea edx, [esp + 0xb4]
mov dword [ecx + 4], edx
lea edx, [esp + 0xc0]
mov dword [ecx], edx
mov dword [ecx + 0x14], 0
mov dword [esp + 0x18], eax
call fcn.0042a260
mov si, word [0x49724c]
mov ax, si
dec eax
mov si, ax
mov word [0x49724c], si
movsx eax, si
mov ecx, dword [esp + 0x18]
cmp ecx, eax
jl 0x424989
mov dword [0x4960fc], 0xccaeca58
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