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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x108
mov eax, dword [esp + 0x124]
mov ecx, dword [esp + 0x120]
mov edx, dword [esp + 0x11c]
mov esi, dword [esp + 0x118]
xor edi, edi
mov dword [esp + 0x100], eax
mov dword [esp + 0xfc], ecx
mov dword [esp + 0xf8], edx
mov dword [esp + 0xf4], esi
mov eax, dword [0x4899a8]
or eax, 0xf4c6df33
mov dword [0x4899a8], eax
mov eax, dword [0x48f260]
imul eax, eax, 0xb286e400
xor eax, 0xf3fc6267
mov ecx, dword [0x494bec]
or ecx, eax
mov dword [0x494bec], ecx
mov eax, dword [0x48a64c]
add eax, 0x3b7c1151
mov dword [0x48a64c], eax
mov eax, dword [esp + 0x100]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x80], edi
call fcn.00449d30
cmp eax, 0
jne 0x412816
mov dword [esp + 0x104], 0xfffffff4
jmp 0x41413d
mov eax, 0x9ff842be
mov ecx, dword [0x48c4c4]
mov edx, ecx
inc edx
mov dword [0x48c4c4], edx
cmp eax, ecx
jge 0x41284f
mov eax, dword [0x4900fc]
mov ecx, eax
dec ecx
mov dword [0x4900fc], ecx
mov ecx, dword [0x494ab4]
lea eax, [ecx + eax - 1]
mov dword [0x494ab4], eax
mov eax, 0x459e906f
mov ecx, esp
lea edx, [esp + 0xa4]
mov dword [ecx + 0x10], edx
lea edx, [esp + 0xb0]
mov dword [ecx + 0xc], edx
lea edx, [esp + 0xbc]
mov dword [ecx + 8], edx
lea edx, [esp + 0xc8]
mov dword [ecx + 4], edx
lea edx, [esp + 0xd4]
mov dword [ecx], edx
mov dword [ecx + 0x14], 0
mov dword [esp + 0x7c], eax
call fcn.00401da0
mov eax, dword [0x48ae58]
and eax, 0xd3307a78
mov ecx, dword [esp + 0x7c]
cmp ecx, eax
jge 0x4128c5
mov ax, word [0x4843bc]
mov cx, ax
or ecx, 0xbbf7
mov ax, cx
mov word [0x4843bc], ax
mov eax, dword [esp + 0x100]
mov ecx, dword [esp + 0xfc]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00429f20
cmp eax, 0
jge 0x412a19
mov eax, 0x12e51fcf
mov cx, word [0x48306c]
movsx edx, cx
or edx, 0x7e75987c
cmp eax, edx
jge 0x41294a
mov eax, 0x4a0f025d
mov ecx, dword [0x4945d4]
inc ecx
mov dword [0x4945d4], ecx
cmp eax, ecx
jne 0x412945
mov eax, dword [0x48d9c8]
mov cx, word [0x483e14]
movsx edx, cx
sar edx, 3
xor eax, edx
mov edx, dword [0x489338]
xor eax, edx
xor eax, 0x114f98e
mov dword [0x489338], eax
jmp 0x41294a
cmp dword [esp + 0xf4], 0
je 0x41298f
xor eax, eax
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x78], eax
call fcn.0043a5a0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x41298a
jmp 0x4140e1
jmp 0x41298f
mov eax, dword [0x4989c8]
xor eax, 0xa6b847bf
mov ecx, dword [0x497054]
add ecx, eax
mov dword [0x497054], ecx
cmp dword [esp + 0xf8], 0
je 0x4129e9
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004323e0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x4129e4
jmp 0x4140e1
jmp 0x4129e9
mov ax, word [0x482b2a]
mov cx, ax
shl ecx, 7
mov ax, word [0x485124]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x485124], ax
mov dword [esp + 0x104], 0
jmp 0x41413d
lea eax, [esp + 0xd4]
mov ecx, dword [0x4959e0]
mov edx, ecx
inc edx
mov dword [0x4959e0], edx
add ecx, 0x5c3139db
or ecx, 0x515702c3
mov edx, dword [0x497468]
xor edx, ecx
mov dword [0x497468], edx
mov ecx, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004323e0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412a71
jmp 0x4140e1
lea eax, [esp + 0xc8]
mov ecx, dword [0x497cb8]
mov edx, ecx
dec edx
mov dword [0x497cb8], edx
add ecx, 0x85905a2
mov edx, dword [0x48aa90]
sub edx, ecx
mov dword [0x48aa90], edx
mov ecx, dword [esp + 0x100]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004323e0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412ac3
jmp 0x4140e1
lea eax, [esp + 0xbc]
mov ecx, dword [0x49758c]
xor ecx, 0x59b081a1
mov edx, dword [0x49867c]
or edx, ecx
mov dword [0x49867c], edx
mov dword [esp + 0xc8], 1
mov dword [esp + 0xd4], 1
mov ecx, dword [0x491abc]
add ecx, 0xbdb91467
mov dword [0x491abc], ecx
mov ecx, dword [esp + 0xfc]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004182d0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412b3a
jmp 0x4140e1
lea eax, [esp + 0xbc]
xor ecx, ecx
mov edx, dword [0x496b40]
dec edx
mov dword [0x496b40], edx
or edx, 0xe97bc642
mov esi, dword [0x493f58]
and esi, edx
mov dword [0x493f58], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x74], ecx
call fcn.0043a5a0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412b8d
jmp 0x4140e1
lea eax, [esp + 0xb0]
mov ecx, 2
mov dx, word [0x488248]
mov si, dx
and esi, 0xd6a5
mov dx, si
mov word [0x488248], dx
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x70], ecx
call fcn.004182d0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412bdc
jmp 0x4140e1
mov eax, dword [0x496fc4]
mov ecx, dword [0x4980e4]
add eax, ecx
cmp eax, 0x8e9bab57
je 0x412c1a
mov eax, 0x67e4a4b5
mov cx, word [0x484c6e]
movsx edx, cx
cmp eax, edx
jge 0x412c15
mov dword [0x492f44], 0xe31a47ac
jmp 0x412c1a
lea eax, [esp + 0xa4]
mov ecx, 3
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x6c], ecx
call fcn.004182d0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412c4f
jmp 0x4140e1
mov eax, dword [0x4906a8]
imul eax, eax, 0x3d37f4b5
mov dword [0x4906a8], eax
mov eax, esp
lea ecx, [esp + 0xc8]
mov dword [eax], ecx
call fcn.00401c20
mov ecx, eax
sar ecx, 0x1f
shr ecx, 0x1b
mov edx, eax
add edx, ecx
and edx, 0xffffffe0
sub eax, edx
mov dword [esp + 0xe0], eax
mov eax, dword [0x48d6b0]
and eax, 0xfdb5bff7
mov dword [0x48d6b0], eax
cmp dword [esp + 0xe0], 0x1f
jge 0x412d72
lea eax, [esp + 0xd4]
mov ecx, dword [0x48fe10]
imul ecx, ecx, 0xbd6c1bb0
mov dword [0x48fe10], ecx
mov ecx, dword [esp + 0xe0]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xe0], edx
mov si, word [0x486066]
mov cx, si
imul ecx, ecx, 0x96a419d9
mov si, cx
mov word [0x486066], si
mov ecx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00436750
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412d14
jmp 0x4140e1
lea eax, [esp + 0xc8]
mov cx, word [0x482c16]
mov dx, cx
add edx, 0x5dae2f5f
mov cx, dx
mov word [0x482c16], cx
mov edx, dword [esp + 0xe0]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00436750
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x412d5d
jmp 0x4140e1
mov eax, dword [0x491634]
imul eax, eax, 0xdb2eae3a
mov dword [0x491634], eax
jmp 0x412d7d
mov dword [esp + 0xe0], 0
mov eax, 0x29a429bf
mov cx, word [0x486c2c]
mov dx, cx
add edx, 0x8e418934
mov cx, dx
mov word [0x486c2c], cx
mov edx, dword [esp + 0xd8]
dec edx
mov dword [esp + 0xe8], edx
mov cx, word [0x48688c]
mov dx, cx
dec edx
mov cx, dx
mov word [0x48688c], cx
movsx edx, cx
and edx, 0x37b51088
cmp eax, edx
jle 0x412e01
mov eax, 0x29dbfec9
mov ecx, dword [0x498c2c]
cmp eax, ecx
jge 0x412dfc
mov ax, word [0x4835ea]
mov cx, ax
xor ecx, 0x3736
mov ax, cx
mov word [0x4835ea], ax
jmp 0x412e34
mov eax, dword [0x494638]
shl eax, 4
mov cx, word [0x48804c]
movsx edx, cx
imul edx, edx, 0xf06121e
add eax, edx
cmp eax, 0x78a40e2f
jne 0x412e2f
mov word [0x485696], 0x4ada
jmp 0x412e34
mov eax, 0x89b894a3
mov ecx, dword [esp + 0xcc]
dec ecx
mov dword [esp + 0xe4], ecx
mov ecx, dword [0x48ecfc]
add ecx, 0x171dc7d
cmp eax, ecx
jle 0x412e74
mov ax, word [0x4872f6]
mov cx, ax
imul ecx, ecx, 0x49a257c6
mov ax, cx
mov word [0x4872f6], ax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc8]
mov dword [ecx], eax
call fcn.00436750
mov ecx, dword [0x48e56c]
add ecx, 0x745e30a0
mov dword [0x48e56c], ecx
mov dword [esp + 0x68], eax
lea eax, [esp + 0xd4]
lea ecx, [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00426970
cmp eax, 0
jl 0x412f4f
mov eax, dword [0x498700]
add eax, 0xb7fdf9f5
mov dword [0x498700], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
sub eax, ecx
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + eax*4]
inc edx
mov dword [ecx + eax*4], edx
mov eax, dword [0x4981cc]
xor eax, 0xd109ac41
mov dword [0x4981cc], eax
mov eax, esp
lea ecx, [esp + 0xc8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xd4]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00432620
mov si, word [0x487934]
mov cx, si
xor ecx, 0xa3a6
mov si, cx
mov word [0x487934], si
mov dword [esp + 0x64], eax
jmp 0x412eb0
mov eax, dword [0x48fe44]
add eax, 0xd48f1c0d
mov dword [0x48af34], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc8]
mov dword [ecx], eax
call fcn.004316f0
mov ecx, dword [0x4947dc]
mov edx, ecx
inc edx
mov dword [0x4947dc], edx
mov edx, dword [0x4958f4]
imul ecx, edx
imul ecx, ecx, 0x206572d4
mov si, word [0x4860be]
mov dx, si
and edx, ecx
mov si, dx
mov word [0x4860be], si
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0xec], ecx
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0xec]
cmp eax, dword [esp + 0xe4]
jle 0x413e6b
mov dword [0x48a6cc], 0xf183027e
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xd0]
cmp eax, dword [edx + ecx*4]
jb 0x413034
mov eax, dword [esp + 0xec]
sub eax, dword [esp + 0xe4]
sub eax, 1
mov ecx, dword [esp + 0xc4]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x4137c6
mov eax, 0xf77b67ef
mov ecx, dword [0x48a85c]
dec ecx
mov dword [0x48a85c], ecx
and ecx, 0xee7baef0
cmp eax, ecx
jg 0x413063
mov eax, dword [0x48cad8]
add eax, 0x1c56dfcf
mov dword [0x48cad8], eax
mov ax, word [0x483f4e]
mov cx, ax
xor ecx, 0x10e2
mov ax, cx
mov word [0x483f4e], ax
mov ecx, dword [0x4901fc]
dec ecx
mov dword [0x4901fc], ecx
mov ax, word [0x486fd2]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x486fd2], ax
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0xd0]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0x88], ecx
mov ecx, dword [0x498540]
add ecx, 0x3c71fefc
mov dword [0x498540], ecx
movzx ecx, word [esp + 0x88]
mov dword [esp + 0x90], ecx
mov ecx, dword [0x495d64]
inc ecx
mov dword [0x495d64], ecx
imul ecx, ecx, 0x5d02ac9a
mov edx, dword [0x49959c]
sar edx, 9
and ecx, edx
mov ax, word [0x48619a]
mov dx, ax
dec edx
mov si, dx
mov word [0x48619a], si
movsx edx, ax
imul edx, edx, 0x419a33c9
or edx, 0x892165b1
cmp ecx, edx
jg 0x413136
mov ax, word [0x485404]
mov cx, ax
add ecx, 0xd05f8243
mov ax, cx
mov word [0x485404], ax
mov eax, 0x529a7e5a
movzx ecx, word [esp + 0x8a]
mov dword [esp + 0x8c], ecx
mov dx, word [0x485f52]
movsx ecx, dx
mov dx, word [0x485d1c]
movsx esi, dx
shl esi, 6
imul ecx, esi
cmp eax, ecx
jne 0x413175
mov word [0x4842e4], 0xe175
mov eax, 0x892a18a4
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xdc]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x8c]
xor esi, esi
mov dword [esp + 0x5c], eax
mov eax, ecx
mov dword [esp + 0x58], edx
mov edx, esi
mov ecx, dword [esp + 0x58]
div ecx
mov dword [esp + 0x9c], eax
mov eax, dword [0x496d24]
imul eax, eax, 0x38514d3c
mov dword [0x496d24], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x9c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x94], eax
mov di, word [0x48895a]
mov ax, di
dec eax
mov bx, ax
mov word [0x48895a], bx
movsx eax, di
mov ecx, dword [esp + 0x5c]
cmp ecx, eax
jl 0x413215
mov word [0x488510], 0x6685
mov eax, dword [esp + 0x94]
shl eax, 0x10
mov dword [esp + 0x94], eax
mov eax, dword [0x48b850]
imul eax, eax, 0xda4080
mov dword [0x48b850], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xdc]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x94]
or ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x48f464]
xor eax, 0x1d483d24
mov dword [0x48f464], eax
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x90]
imul eax, ecx
mov dword [esp + 0x84], eax
mov dx, word [0x482b74]
mov ax, dx
add eax, 0x23279e4b
mov dx, ax
mov word [0x482b74], dx
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x84]
jae 0x41339b
mov eax, dword [0x496b94]
mov ecx, 0x57a60970
sub ecx, eax
xor ecx, 0xac829213
mov dword [0x48f3fc], ecx
mov eax, dword [esp + 0x9c]
dec eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x94]
add ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x492718]
dec eax
mov dword [0x492718], eax
or eax, 0xb6165a32
or eax, 0x1ad5cf9
cmp eax, 0xe48da9b1
jg 0x41331a
mov eax, dword [0x48a40c]
and eax, 0x674d5c16
mov dword [0x48a40c], eax
jmp 0x41331f
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x88]
mov byte [esp + 0x57], cl
jb 0x413350
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x84]
setb cl
mov byte [esp + 0x57], cl
mov al, byte [esp + 0x57]
test al, 1
jne 0x413361
jmp 0x41338c
mov eax, dword [esp + 0x9c]
add eax, 0xffffffff
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x94]
mov dword [esp + 0x94], eax
jmp 0x41331f
mov eax, dword [0x4955d0]
add eax, 0x9d803e6b
mov dword [0x4955d0], eax
mov eax, 0xc3f5feff
mov ecx, dword [0x48f9ac]
inc ecx
mov dword [0x48f9ac], ecx
sub ecx, 0x408ba3aa
cmp eax, ecx
jne 0x4133d3
mov ax, word [0x48508a]
mov cx, ax
add ecx, 0x75dbfc00
mov ax, cx
mov word [0x48508a], ax
mov eax, 0xe22e501a
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x94]
sub edx, ecx
mov dword [esp + 0x94], edx
mov ecx, dword [0x489de4]
imul ecx, ecx, 0x65bf88cf
mov dword [0x48b938], ecx
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x8c]
xor esi, esi
mov dword [esp + 0x50], eax
mov eax, ecx
mov dword [esp + 0x4c], edx
mov edx, esi
mov ecx, dword [esp + 0x4c]
div ecx
mov dword [esp + 0xa0], eax
mov eax, dword [0x496dd0]
xor eax, 0xa4bee9b1
mov dword [0x496dd0], eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0xa0]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x98], eax
mov eax, dword [0x498028]
imul eax, eax, 0xca1cc63d
mov dword [0x498028], eax
mov eax, dword [esp + 0x98]
shl eax, 0x10
mov dword [esp + 0x98], eax
mov eax, dword [0x4891ec]
imul eax, eax, 0x8486a58e
or eax, 0xbfde6f77
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jg 0x4134ab
mov eax, dword [0x495b7c]
add eax, 0x79780d15
mov dword [0x495b7c], eax
jmp 0x4134ed
mov eax, 0x9f75f6e5
mov ecx, dword [0x48cfd0]
mov edx, ecx
inc edx
mov dword [0x48cfd0], edx
or ecx, 0x56b64f5f
cmp eax, ecx
jne 0x4134e8
mov eax, dword [0x494b74]
mov cx, word [0x4886e4]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4886e4], cx
jmp 0x4134ed
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xdc]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x98]
or ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [0x493dd0]
and eax, 0xfb07cfb9
mov dword [0x493dd0], eax
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x90]
imul eax, ecx
mov dword [esp + 0x84], eax
mov dx, word [0x48345a]
mov ax, dx
and eax, 0x505d
mov dx, ax
mov word [0x48345a], dx
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x84]
jae 0x4136f5
mov eax, 0xd5b60cb7
mov ecx, dword [0x49291c]
inc ecx
mov dword [0x49291c], ecx
or ecx, 0x4cc748d2
cmp eax, ecx
jl 0x4135da
mov ax, word [0x483a08]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x483a08], ax
movsx ecx, ax
and ecx, 0x767c66c7
cmp ecx, 0xa52cbf6b
jg 0x4135d5
mov ax, word [0x487794]
movsx ecx, ax
not ecx
mov edx, dword [0x4980bc]
and edx, 0x4cf6de90
cmp ecx, edx
jle 0x4135d0
jmp 0x4135d0
jmp 0x4135d5
jmp 0x4135da
mov eax, dword [esp + 0xa0]
dec eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x98]
add ecx, eax
mov dword [esp + 0x98], ecx
mov eax, dword [0x48e438]
or eax, 0xb6889edc
mov ecx, dword [0x495da4]
and ecx, eax
mov dword [0x495da4], ecx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x88]
mov byte [esp + 0x4b], cl
jb 0x413649
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x84]
setb cl
mov byte [esp + 0x4b], cl
mov al, byte [esp + 0x4b]
test al, 1
jne 0x41365a
jmp 0x413685
mov eax, dword [esp + 0xa0]
add eax, 0xffffffff
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x88]
add eax, dword [esp + 0x98]
mov dword [esp + 0x98], eax
jmp 0x413618
mov ax, word [0x488c3a]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x488c3a], ax
movsx ecx, ax
imul ecx, ecx, 0xe9c79d38
mov edx, dword [0x49371c]
inc edx
mov dword [0x49371c], edx
and edx, 0x383dee50
cmp ecx, edx
jge 0x4136e1
mov eax, dword [0x48cf54]
xor eax, 0x7e97
mov cx, word [0x485d9c]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x485d9c], cx
jmp 0x4136f0
mov eax, dword [0x496640]
add eax, 0x9069c241
mov dword [0x496640], eax
jmp 0x4136f5
mov eax, dword [0x497578]
add eax, 0x3ff37013
cmp eax, 0xe85ff915
jl 0x41372b
mov eax, dword [0x48db28]
mov ecx, dword [0x48c774]
xor ecx, 0x9d45f74d
or eax, ecx
mov ecx, dword [0x492b0c]
xor ecx, eax
mov dword [0x492b0c], ecx
mov eax, 0x1396b138
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x98]
sub edx, ecx
mov dword [esp + 0x98], edx
mov ecx, dword [0x48ddc0]
mov edx, ecx
inc edx
mov dword [0x48ddc0], edx
imul ecx, ecx, 0xe684414d
or ecx, 0xa1bac458
mov edx, dword [0x48d4ac]
and edx, ecx
mov dword [0x48d4ac], edx
mov ecx, dword [esp + 0x9c]
shl ecx, 0x10
mov edx, dword [esp + 0xa0]
or ecx, edx
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0xe4]
sub edx, esi
mov esi, dword [esp + 0xc4]
mov dword [esi + edx*4 - 4], ecx
mov ecx, dword [0x495a9c]
and ecx, 0x75400198
cmp eax, ecx
jge 0x4137c1
mov eax, dword [0x48b34c]
and eax, 0x2950204
mov dword [0x48b34c], eax
jmp 0x4137c6
mov eax, 0x12851807
mov ecx, dword [0x495478]
add ecx, 0xdb558c82
mov dword [0x495478], ecx
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0xe4]
sub ecx, edx
mov edx, dword [esp + 0xc4]
mov esi, dword [edx + ecx*4 - 4]
inc esi
mov dword [edx + ecx*4 - 4], esi
mov di, word [0x486c84]
movsx ecx, di
or ecx, 0xee1f5015
cmp eax, ecx
jg 0x413854
mov eax, 0x2232500b
mov ecx, dword [0x48a704]
shl ecx, 3
mov dx, word [0x480e04]
movsx esi, dx
xor ecx, esi
cmp eax, ecx
jne 0x41384f
mov eax, dword [0x48b6cc]
add eax, 0x5d741cb0
mov ecx, dword [0x48cb74]
xor ecx, eax
mov dword [0x48cb74], ecx
jmp 0x413854
jmp 0x413859
lea eax, [esp + 0xb0]
xor ecx, ecx
mov dword [0x48e878], 0xce8ff76d
mov edx, dword [esp + 0xec]
mov esi, dword [esp + 0xe4]
sub edx, esi
mov esi, dword [esp + 0xc4]
mov edi, dword [esi + edx*4 - 4]
dec edi
mov dword [esi + edx*4 - 4], edi
mov edx, dword [0x4950e8]
add edx, 0xbcde0267
and edx, 0xd9ed3d60
mov esi, dword [0x498b6c]
or esi, edx
mov dword [0x498b6c], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x44], ecx
call fcn.0043a5a0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x4138d5
jmp 0x4140e1
mov eax, dword [0x48f320]
add eax, 0xd553dfbf
mov dword [0x48f320], eax
cmp dword [esp + 0xe4], 1
jge 0x4138fd
xor eax, eax
mov dword [esp + 0x40], eax
jmp 0x413915
mov eax, dword [esp + 0xe4]
sub eax, 1
mov ecx, dword [esp + 0xd0]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0xb0]
mov edx, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [0x48b588]
or eax, 0xffd516bf
mov dword [0x48b588], eax
mov eax, dword [esp + 0xe4]
mov edx, dword [esp + 0xd0]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0xb8]
mov dword [edx + 4], eax
mov eax, dword [0x48fe58]
shl eax, 0xa
mov dword [0x48d054], eax
mov eax, dword [esp + 0xec]
sub eax, dword [esp + 0xe4]
sub eax, 1
mov edx, dword [esp + 0xc4]
mov eax, dword [edx + eax*4]
mov dword [esp], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004019d0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x4139a0
jmp 0x4140e1
lea eax, [esp + 0xa4]
xor ecx, ecx
mov edx, dword [0x492c68]
add edx, 0x339a34e
mov esi, dword [0x48d560]
or esi, edx
mov dword [0x48d560], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x3c], ecx
call fcn.0043a5a0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x4139ec
jmp 0x4140e1
mov eax, dword [0x4985d0]
not eax
mov ecx, dword [0x48dfa8]
mov edx, ecx
inc edx
mov dword [0x48dfa8], edx
sub eax, ecx
mov si, word [0x48440a]
mov cx, si
add ecx, eax
mov si, cx
mov word [0x48440a], si
cmp dword [esp + 0xec], 2
jge 0x413a33
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x413a4b
mov eax, dword [esp + 0xec]
sub eax, 2
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xac]
mov dword [ecx], eax
mov eax, dword [0x495550]
add eax, 0x45449515
mov dword [0x495550], eax
cmp dword [esp + 0xec], 1
jge 0x413a80
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x413a98
mov eax, dword [esp + 0xec]
sub eax, 1
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 4], eax
mov eax, dword [0x48cd80]
not eax
and eax, 0x9d66
mov dx, word [0x4862c4]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4862c4], dx
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xdc]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 8], eax
mov eax, dword [0x48f01c]
add eax, 0x39dcaef3
and eax, 0x76f9
mov dx, ax
mov word [0x481ccc], dx
lea eax, [esp + 0xb0]
lea ecx, [esp + 0xa4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00426970
cmp eax, 0
jg 0x413859
lea eax, [esp + 0xb0]
lea ecx, [esp + 0xc8]
mov dx, word [0x487f06]
mov si, dx
or esi, 0x6299
mov dx, si
mov word [0x487f06], dx
mov esi, dword [esp + 0xec]
sub esi, dword [esp + 0xe4]
sub esi, 1
mov edi, dword [esp + 0xc4]
mov esi, dword [edi + esi*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.004019d0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x413b87
jmp 0x4140e1
mov eax, 0x40121575
mov ecx, dword [0x497e14]
cmp eax, ecx
je 0x413ba9
mov eax, dword [0x48a708]
add eax, 0x856e1065
mov dword [0x48a708], eax
lea eax, [esp + 0xb0]
mov ecx, dword [esp + 0xec]
sub ecx, dword [esp + 0xe4]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00436750
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x413be5
jmp 0x4140e1
mov ax, word [0x487e6a]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x487e6a], dx
movsx ecx, ax
add ecx, 0x43551231
cmp ecx, 0xbb679518
jge 0x413c3d
mov ax, word [0x482580]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x482580], ax
or ecx, 0x176a
mov ax, word [0x4834d4]
mov dx, ax
add edx, ecx
mov ax, dx
mov word [0x4834d4], ax
lea eax, [esp + 0xd4]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00432620
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x413c70
jmp 0x4140e1
lea eax, [esp + 0xd4]
xor ecx, ecx
mov dx, word [0x4834fc]
mov si, dx
mov edi, dword [0x49529c]
mov ebx, edi
dec ebx
mov dword [0x49529c], ebx
and esi, edi
mov edi, dword [0x49142c]
or esi, edi
mov dx, word [0x4869c2]
mov di, dx
imul edi, esi
mov dx, di
mov word [0x4869c2], dx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x30], ecx
call fcn.00449d30
cmp eax, 0
jge 0x413e32
mov eax, dword [0x492420]
add eax, 0xb2449652
cmp eax, 0x7b583316
jle 0x413cfd
mov ax, word [0x484604]
mov cx, ax
imul ecx, ecx, 0x947babb9
mov ax, cx
mov word [0x484604], ax
lea eax, [esp + 0xb0]
lea ecx, [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004323e0
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x413d2c
jmp 0x4140e1
mov eax, dword [0x498398]
cmp eax, 0xe32d0091
jg 0x413d5d
mov eax, dword [0x48abec]
mov ecx, eax
inc ecx
mov dword [0x48abec], ecx
add eax, 0xb91b14a8
mov ecx, dword [0x489a2c]
sub ecx, eax
mov dword [0x489a2c], ecx
lea eax, [esp + 0xb0]
mov ecx, dword [esp + 0xec]
sub ecx, dword [esp + 0xe4]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00436750
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x413d99
jmp 0x4140e1
mov eax, dword [0x493504]
mov ecx, eax
dec ecx
mov dword [0x493504], ecx
cmp eax, 0x20218601
jg 0x413dc1
mov eax, dword [0x495218]
and eax, 0x62860d7f
mov dword [0x495218], eax
lea eax, [esp + 0xd4]
lea ecx, [esp + 0xb0]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0040b880
mov dword [esp + 0xf0], eax
cmp eax, 0
je 0x413df4
jmp 0x4140e1
mov eax, dword [0x48f4c4]
or eax, 0x11080883
mov dword [0x48f4c4], eax
mov eax, dword [esp + 0xec]
mov ecx, dword [esp + 0xe4]
sub eax, ecx
mov ecx, dword [esp + 0xc4]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov eax, dword [0x48dfd0]
xor eax, 0x2ec2fb11
mov dword [0x48dfd0], eax
mov ax, word [0x487026]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x487026], dx
movsx ecx, ax
or ecx, 0x3ff4ce9b
mov dword [0x48aae8], ecx
mov eax, dword [esp + 0xec]
add eax, 0xffffffff
mov dword [esp + 0xec], eax
jmp 0x412fca
mov eax, dword [0x48f3dc]
add eax, 0xbb141454
mov dword [0x48f3dc], eax
cmp dword [esp + 0xf4], 0
je 0x413f3d
mov eax, 0xa46b35b1
mov ecx, dword [0x491584]
and ecx, 0x31440487
mov dword [0x491584], ecx
mov ecx, dword [esp + 0xf4]
mov edx, esp
lea esi, [esp + 0xbc]
mov dword [edx + 4], esi
mov dword [edx], ecx
mov dword [esp + 0x2c], eax
call fcn.004323e0
mov ecx, dword [0x4963d8]
xor ecx, 0xf70617a9
mov edx, dword [esp + 0x2c]
cmp edx, ecx
mov dword [esp + 0x28], eax
jl 0x413ef4
mov eax, dword [0x48b920]
not eax
add eax, 0x9f8eeba9
mov ecx, dword [0x496b10]
imul ecx, eax
mov dword [0x496b10], ecx
mov eax, dword [esp + 0xfc]
mov eax, dword [eax]
mov ecx, dword [esp + 0x100]
mov ecx, dword [ecx]
imul eax, ecx
mov ecx, dword [esp + 0xf4]
mov dword [ecx], eax
mov eax, dword [0x48bb5c]
mov ecx, eax
inc ecx
mov dword [0x48bb5c], ecx
mov ecx, dword [0x48f6b0]
imul ecx, ecx, 0xed984991
add eax, ecx
mov ecx, dword [0x48a8a0]
imul ecx, eax
mov dword [0x48a8a0], ecx
mov eax, dword [0x493f6c]
add eax, 0x40401008
mov dword [0x493f6c], eax
cmp dword [esp + 0xf8], 0
je 0x4140a5
mov eax, dword [0x48d86c]
imul eax, eax, 0x823fcf06
mov ecx, dword [0x4928a4]
and ecx, 0xe7785b4
and ecx, 0x6a13c12b
cmp eax, ecx
je 0x413f89
mov dword [0x4910ec], 0x5bf03524
mov eax, dword [esp + 0xe0]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xd4]
mov dword [ecx], eax
mov dword [esp + 0x24], eax
call fcn.004316f0
mov dx, word [0x482a7c]
movsx ecx, dx
shl ecx, 6
mov esi, dword [0x4939c4]
add esi, ecx
mov dword [0x4939c4], esi
mov ecx, dword [esp + 0xf8]
mov esi, esp
mov edi, dword [esp + 0x24]
mov dword [esi + 4], edi
mov dword [esi], ecx
mov dword [esp + 0x20], eax
call fcn.004323e0
mov ecx, dword [0x490b70]
not ecx
mov dx, word [0x486dcc]
movsx esi, dx
sar esi, 0xa
xor ecx, esi
cmp ecx, 0x63d77003
mov dword [esp + 0x1c], eax
jg 0x414013
mov eax, dword [0x48e82c]
xor eax, 0xa036060
mov dword [0x48e82c], eax
xor eax, eax
mov ecx, dword [esp + 0xfc]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf8]
mov dword [edx], ecx
mov si, word [0x4846f4]
mov cx, si
inc ecx
mov si, cx
mov word [0x4846f4], si
movsx ecx, si
mov edx, dword [0x493674]
add ecx, edx
or ecx, 0x448482d1
mov edx, dword [0x495f28]
imul edx, ecx
mov dword [0x495f28], edx
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.00449d30
cmp eax, 0
jne 0x41408d
mov eax, dword [esp + 0xf8]
mov dword [eax], 1
mov ax, word [0x48754e]
mov cx, ax
imul ecx, ecx, 0x1bdf7ed6
mov ax, cx
mov word [0x48754e], ax
mov eax, dword [0x494fc8]
inc eax
mov dword [0x494fc8], eax
cmp eax, 0x1d4d2b6d
jle 0x4140dc
mov eax, dword [0x48e734]
mov ecx, eax
inc ecx
mov dword [0x48e734], ecx
mov ecx, 0xab3172a2
sub ecx, eax
mov eax, dword [0x499030]
and eax, ecx
mov dword [0x499030], eax
jmp 0x4140e1
mov eax, esp
lea ecx, [esp + 0xa4]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xb0]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xbc]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc8]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd4]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.00405ff0
mov eax, dword [0x4939a8]
add eax, 0x6835d634
mov dword [0x4939a8], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x104]
add esp, 0x108
pop esi
pop edi
pop ebx
ret