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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x5b0
mov eax, 0x1920230a
mov ecx, dword [0x49ec28]
shl ecx, 0xa
sub ecx, 0x3e803ab8
cmp eax, ecx
je 0x408fa1
mov eax, 0x2d91b62e
mov ecx, dword [0x499d38]
dec ecx
mov dword [0x499d38], ecx
mov edx, dword [0x496548]
imul edx, edx, 0xb4a02df8
xor ecx, edx
cmp eax, ecx
jne 0x408f9c
mov eax, dword [0x499100]
or eax, 0x598919e7
mov dword [0x499100], eax
jmp 0x408fa1
mov eax, 0xc4fa06e5
lea ecx, [esp + 0x570]
mov dword [esp + 0x124], eax
call fcn.00449360
mov ecx, dword [0x49ed8c]
xor ecx, 0xb7c8b2f1
mov dword [0x49ed8c], ecx
mov ecx, dword [0x495678]
mov edx, ecx
dec edx
mov dword [0x495678], edx
mov edx, dword [esp + 0x124]
sub edx, ecx
cmp edx, 0xe4c64666
mov dword [esp + 0x120], eax
jne 0x40900a
mov eax, dword [0x492328]
add eax, 0xc166304
mov dword [0x492328], eax
jmp 0x409028
mov ax, word [0x4a8062]
movsx ecx, ax
mov edx, 0x1caebb62
sub edx, ecx
mov ecx, dword [0x499d48]
and ecx, edx
mov dword [0x499d48], ecx
mov ax, word [0x4aae50]
mov cx, ax
and ecx, 0xc854
mov ax, cx
mov word [0x4aae50], ax
mov ecx, dword [0x496ebc]
add ecx, 0x2b82608d
mov dword [0x496ebc], ecx
mov dword [esp + 0x128], 0
mov ax, word [0x4a969e]
movsx ecx, ax
imul ecx, ecx, 0x7917d022
or ecx, 0x5bba00cc
mov edx, dword [0x495050]
xor edx, ecx
mov dword [0x495050], edx
mov dword [0x4ac768], 0x94
mov ax, word [0x4a5282]
mov cx, ax
dec ecx
mov si, cx
mov word [0x4a5282], si
movsx ecx, ax
mov edx, dword [0x4a0ce8]
lea ecx, [ecx + edx - 0x30290962]
mov dword [0x4a0ce8], ecx
mov ecx, dword [0x491c80]
mov edx, esp
mov dword [edx], 0x4ac768
call ecx
sub esp, 4
mov ecx, dword [0x49890c]
xor ecx, 0xffffffff
imul ecx, ecx, 0xc95d61c5
xor ecx, 0x7baa99c7
cmp ecx, 0x9f5768e5
mov dword [esp + 0x11c], eax
je 0x4090f9
mov dword [0x4a1f98], 0x3e5ebce3
call fcn.00407a10
mov dword [0x4ad058], eax
mov eax, dword [0x49c630]
imul eax, eax, 0x9cc08405
mov dword [0x49c630], eax
call fcn.004210a0
mov dword [0x4ad05c], eax
mov eax, dword [0x4979e8]
and eax, 0x2b4ba11c
mov dword [0x4979e8], eax
mov eax, dword [0x4ad058]
cmp eax, 0
je 0x409302
mov eax, dword [0x498100]
xor eax, 0x4bfe0e0a
mov dword [0x498100], eax
mov eax, esp
lea ecx, [esp + 0x138]
mov dword [eax], ecx
mov dword [esp + 0x118], ecx
call fcn.0040c090
mov dword [esp + 0x134], eax
mov eax, dword [0x49b1e0]
imul eax, eax, 0x9a7a7053
mov dword [0x49b1e0], eax
mov eax, dword [esp + 0x134]
mov byte [esp + eax + 0x138], 0x5c
mov dx, word [0x4a83f2]
mov ax, dx
dec eax
mov si, ax
mov word [0x4a83f2], si
movsx eax, dx
mov dword [0x49aba8], eax
mov eax, dword [esp + 0x134]
inc eax
mov dword [esp + 0x134], eax
mov eax, dword [0x49ea8c]
add eax, 0xdb9a163d
mov dword [0x49ea8c], eax
mov eax, dword [esp + 0x134]
mov byte [esp + eax + 0x138], 0
mov eax, dword [0x49e1b4]
shl eax, 6
or eax, 0xe52a747b
mov ecx, dword [0x4963f8]
xor ecx, eax
mov dword [0x4963f8], ecx
mov eax, dword [0x4ad098]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x118]
mov dword [ecx], eax
call fcn.00456650
mov ecx, dword [0x496704]
and ecx, 0xa5636e0
mov dword [0x496704], ecx
mov ecx, dword [0x491cc8]
mov edi, esp
mov ebx, dword [esp + 0x118]
mov dword [edi], ebx
mov dword [edi + 4], 0
mov dword [esp + 0x114], eax
call ecx
sub esp, 8
mov ecx, dword [0x49cf98]
and ecx, 0xbdfcd21c
mov dword [0x49cf98], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4630
mov dword [esp + 0x110], eax
call fcn.004322b0
mov dword [esp + 0x5ac], eax
mov eax, dword [0x49f6cc]
and eax, 0x440c2db0
mov ecx, dword [0x4a2e2c]
sub ecx, eax
mov dword [0x4a2e2c], ecx
mov eax, dword [esp + 0x5ac]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x118]
mov dword [ecx], eax
call fcn.00456650
mov ecx, dword [0x494d20]
mov edi, dword [0x4975a4]
or ecx, edi
or ecx, 0xccd810fe
mov dword [0x4975a4], ecx
mov ecx, dword [esp + 0x5ac]
mov edi, esp
mov dword [edi + 4], ecx
mov dword [edi], 0x1f
mov dword [esp + 0x10c], eax
call fcn.00422f30
mov eax, dword [0x49efbc]
mov ecx, eax
inc ecx
mov dword [0x49efbc], ecx
and eax, 0x72576bbe
xor eax, 0xbd268053
mov ecx, dword [0x49fb30]
add ecx, eax
mov dword [0x49fb30], ecx
jmp 0x409387
mov eax, 0xf6b7227b
mov ecx, dword [0x49d1dc]
imul ecx, ecx, 0xec4a3639
mov dword [0x49d1dc], ecx
mov byte [esp + 0x138], 0
mov dx, word [0x4a9108]
movsx ecx, dx
mov esi, dword [0x49ae80]
dec esi
mov dword [0x49ae80], esi
and ecx, esi
xor ecx, 0x6d89fdc5
cmp eax, ecx
jne 0x40936a
mov ax, word [0x4aaa9c]
movsx ecx, ax
mov edx, dword [0x494f90]
or ecx, edx
or ecx, 0x2e8ec898
mov dword [0x494f90], ecx
jmp 0x409382
mov eax, dword [0x49e2c0]
mov ecx, 0xe4c28b77
sub ecx, eax
mov eax, dword [0x492680]
sub eax, ecx
mov dword [0x492680], eax
jmp 0x409387
mov eax, 0x88ed71f9
mov cx, word [0x4ab41c]
mov dx, cx
dec edx
mov si, dx
mov word [0x4ab41c], si
movsx edx, cx
mov edi, dword [0x49bebc]
or edx, edi
or edx, 0x99a4537a
mov dword [0x49bebc], edx
mov edx, esp
mov dword [edx + 4], 0x1f
mov dword [edx], 0x2214
mov dword [esp + 0x108], eax
call fcn.004322b0
mov dword [esp + 0x5a8], eax
mov eax, dword [0x4a0f08]
mov cx, word [0x4a7db2]
movsx edx, cx
shr edx, 9
sub eax, edx
mov cx, word [0x4aa796]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4aa796], cx
mov eax, dword [esp + 0x5a8]
mov edx, esp
mov dword [edx], eax
lea ecx, [esp + 0x570]
call fcn.0041af60
sub esp, 4
mov ecx, dword [0x4a1fcc]
mov edx, ecx
inc edx
mov dword [0x4a1fcc], edx
mov edx, dword [esp + 0x108]
cmp edx, ecx
mov dword [esp + 0x104], eax
je 0x409461
mov ax, word [0x4a799e]
mov cx, ax
and ecx, 0x5940
mov ax, cx
mov word [0x4a799e], ax
jmp 0x409470
mov eax, dword [0x492ea0]
xor eax, 0x44cd8feb
mov dword [0x492ea0], eax
lea eax, [esp + 0x570]
lea ecx, [esp + 0x138]
mov edx, dword [esp + 0x5a8]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 0x1f
mov dword [esp + 0x100], eax
mov dword [esp + 0xfc], ecx
call fcn.00422f30
mov eax, dword [0x4a3140]
mov ecx, eax
dec ecx
mov dword [0x4a3140], ecx
imul eax, eax, 0x100d9df7
mov ecx, dword [0x496c84]
xor ecx, eax
mov dword [0x496c84], ecx
mov eax, dword [esp + 0x100]
mov ecx, eax
call fcn.00407400
lea ecx, [esp + 0x570]
mov dword [esp + 0xf8], eax
call fcn.00407a00
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0xf4], ecx
call fcn.00418670
cmp eax, 0
je 0x409672
mov eax, 0x581329e3
mov cx, word [0x4a53bc]
mov dx, cx
and edx, 0x5300
mov cx, dx
mov word [0x4a53bc], cx
mov dword [esp + 0x128], 1
mov edx, dword [0x4a12d4]
imul edx, edx, 0xafcfbf73
mov dword [0x4a12d4], edx
mov edx, dword [0x491c54]
mov esi, esp
lea edi, [esp + 0x138]
mov dword [esi], edi
mov dword [esp + 0xf0], eax
call edx
sub esp, 4
mov cx, word [0x4a6eea]
mov dx, cx
mov esi, dword [0x4a0e60]
mov edi, esi
dec edi
mov dword [0x4a0e60], edi
imul edx, esi
and edx, 0xb143
mov cx, word [0x4a642a]
mov si, cx
xor esi, edx
mov cx, si
mov word [0x4a642a], cx
mov edx, dword [esp + 0x134]
mov byte [esp + edx + 0x138], 0
mov edx, dword [0x4a02e0]
add edx, 0xe9bacdf9
mov esi, dword [0x498d68]
dec esi
mov dword [0x498d68], esi
mov edi, dword [esp + 0xf0]
sub edi, esi
cmp edx, edi
mov dword [esp + 0xec], eax
jle 0x409601
mov eax, dword [0x49ead0]
add eax, 0x457afed8
mov dword [0x49ead0], eax
mov eax, 0x3bdcdbfb
mov ecx, dword [0x491ccc]
mov edx, esp
lea esi, [esp + 0x138]
mov dword [edx], esi
mov dword [esp + 0xe8], eax
call ecx
sub esp, 4
mov di, word [0x4ac3e2]
mov cx, di
inc ecx
mov bx, cx
mov word [0x4ac3e2], bx
movsx ecx, di
mov di, word [0x4aa9b0]
movsx edx, di
imul ecx, edx
mov edx, dword [esp + 0xe8]
cmp edx, ecx
mov dword [esp + 0xe4], eax
jle 0x40966d
mov eax, dword [0x493760]
mov cx, ax
mov word [0x4a4190], cx
jmp 0x409672
mov ax, word [0x4ab098]
mov cx, ax
imul ecx, ecx, 0x4f51470
mov ax, word [0x4aa6ae]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x4aa6ae], ax
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [esp + 0xe0], edx
call fcn.0040c090
mov dword [0x496b48], 0xffefdc93
mov byte [esp + 0x13b], 0
mov si, word [0x4a8b2e]
mov cx, si
and ecx, 0x783c
mov si, cx
mov word [0x4a8b2e], si
mov ecx, dword [0x4ad098]
mov edx, esp
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [edx], ecx
mov dword [esp + 0xdc], eax
call fcn.00456650
mov ecx, dword [0x496cd4]
add ecx, 0xed6394ae
mov si, word [0x4a801c]
movsx edx, si
or edx, 0x17f1a00a
cmp ecx, edx
mov dword [esp + 0xd8], eax
je 0x409737
mov eax, dword [0x495738]
add eax, 0x400ac021
mov dword [0x495738], eax
jmp 0x409755
mov eax, dword [0x495e80]
and eax, 0x542671fe
xor eax, 0x894c4c67
mov ecx, dword [0x4a1908]
imul ecx, eax
mov dword [0x4a1908], ecx
mov eax, dword [0x491cc8]
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov dword [esp + 0xd4], edx
call eax
sub esp, 8
mov ecx, dword [0x496bf0]
add ecx, 0x7220bbde
mov dword [0x496bf0], ecx
mov ecx, esp
mov edx, dword [esp + 0xd4]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4ac95c
mov dword [esp + 0xd0], eax
call fcn.00456640
mov ecx, dword [0x49ebe4]
cmp ecx, 0x2b3af64a
mov dword [esp + 0xcc], eax
jg 0x4097d0
mov eax, dword [0x492170]
xor eax, 0x200a056
mov dword [0x492170], eax
cmp dword [esp + 0x128], 0
jne 0x4098bf
mov eax, 0xe19ef690
mov cx, word [0x4a8094]
movsx edx, cx
and edx, 0x8b6a0347
cmp eax, edx
jl 0x40984f
mov eax, dword [0x49b754]
mov ecx, eax
inc ecx
mov dword [0x49b754], ecx
or eax, 0x1b53613c
or eax, 0x39c3ea81
cmp eax, 0x7c46b750
jne 0x40983b
mov eax, 0x19e01d7d
mov ecx, dword [0x498760]
cmp eax, ecx
jg 0x409836
jmp 0x409836
jmp 0x40984a
mov eax, dword [0x493cec]
and eax, 0xf6be5991
mov dword [0x493cec], eax
jmp 0x40984f
mov eax, 0x2b21afc3
mov dword [0x4ad054], 0
mov ecx, dword [0x4931a0]
cmp eax, ecx
jl 0x409881
mov eax, dword [0x496020]
imul eax, eax, 0xf959e087
mov dword [0x496020], eax
jmp 0x4098ba
mov eax, 0x200ac842
mov cx, word [0x4a5886]
mov dx, cx
inc edx
mov cx, dx
mov word [0x4a5886], cx
movsx edx, cx
cmp eax, edx
jg 0x4098b5
mov eax, dword [0x495d74]
add eax, 0x299fd28f
mov dword [0x495d74], eax
jmp 0x4098ba
jmp 0x4098bf
mov eax, 0x15f7ba8
mov ecx, dword [0x4a15ac]
mov edx, ecx
inc edx
mov dword [0x4a15ac], edx
and ecx, 0x1827
mov si, word [0x4a54f6]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x4a54f6], si
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [esp + 0xc8], eax
call fcn.004410d0
mov dword [esp + 0x134], eax
mov eax, dword [0x4a338c]
inc eax
mov dword [0x4a338c], eax
and eax, 0x14f23118
mov ecx, dword [esp + 0xc8]
cmp ecx, eax
jg 0x40994b
mov eax, dword [0x49d89c]
mov ecx, 0xda6ea2db
sub ecx, eax
or ecx, 0x394ff68b
mov eax, dword [0x494634]
xor eax, ecx
mov dword [0x494634], eax
mov eax, 0xa5e8d9a
mov ecx, dword [0x491cc8]
mov edx, esp
lea esi, [esp + 0x138]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0xc4], eax
call ecx
sub esp, 8
mov ecx, dword [0x49ed10]
xor ecx, 0x80312218
mov edx, dword [esp + 0xc4]
cmp edx, ecx
mov dword [esp + 0xc0], eax
je 0x4099cd
mov ax, word [0x4a85d4]
movsx ecx, ax
add ecx, 0x6d8356ed
mov edx, dword [0x49a4bc]
or ecx, edx
cmp ecx, 0xfffffbfe
jge 0x4099c8
mov eax, dword [0x49ef84]
and eax, 0x1e0b789e
mov dword [0x49ef84], eax
jmp 0x4099e5
mov ax, word [0x4aa9b8]
mov cx, ax
xor ecx, 0x7e2c
mov ax, cx
mov word [0x4aa9b8], ax
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x4630
call fcn.004322b0
mov dword [esp + 0x5a4], eax
mov cx, word [0x4ac660]
movsx eax, cx
cmp eax, 0xbbc2c544
jne 0x409a34
mov eax, dword [0x49730c]
dec eax
mov dword [0x49730c], eax
imul eax, eax, 0x7550995
mov ecx, dword [0x49a14c]
xor ecx, eax
mov dword [0x49a14c], ecx
mov eax, dword [esp + 0x5a4]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x138]
mov dword [ecx], eax
call fcn.00456650
mov ecx, dword [0x497ebc]
and ecx, 0x20
mov dx, word [0x4a7e8a]
mov si, dx
or esi, ecx
mov dx, si
mov word [0x4a7e8a], dx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2214
mov dword [esp + 0xbc], eax
call fcn.004322b0
mov dword [esp + 0x5a0], eax
mov dword [0x4940c0], 0x5a2cd231
mov eax, dword [esp + 0x5a4]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.00422f30
mov eax, dword [0x49b1ec]
mov dword [0x49a850], eax
mov eax, dword [esp + 0x5a0]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x570]
call fcn.0041af60
sub esp, 4
mov dx, word [0x4a772c]
mov cx, dx
add ecx, 0xd78e4fd7
mov dx, cx
mov word [0x4a772c], dx
mov ecx, dword [esp + 0x5a0]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x1f
mov dword [esp + 0xb8], eax
call fcn.00422f30
mov dx, word [0x4a9766]
movsx eax, dx
shl eax, 9
mov ecx, dword [0x4a252c]
shl ecx, 6
xor ecx, 0x3cedaf8c
cmp eax, ecx
jge 0x409b5f
mov ax, word [0x4a76c6]
mov cx, ax
mov edx, ecx
dec edx
mov ax, dx
mov word [0x4a76c6], ax
or ecx, 0xc95a
mov ax, word [0x4a71bc]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x4a71bc], ax
lea eax, [esp + 0x570]
lea ecx, [esp + 0x138]
mov dword [esp + 0xb4], ecx
mov ecx, eax
call fcn.00407400
lea ecx, [esp + 0x570]
mov dword [esp + 0xb0], eax
call fcn.00407a00
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0xac], ecx
call fcn.00418670
cmp eax, 0
jne 0x40a90d
mov ax, word [0x4a83a0]
mov cx, ax
add ecx, 0xa5c90eba
mov ax, cx
mov word [0x4a83a0], ax
cmp dword [0x4ac76c], 6
jb 0x409c9b
mov eax, dword [0x49ca90]
and eax, 0x4d8255c8
mov dword [0x49ca90], eax
mov eax, esp
mov dword [eax + 4], 0x12
mov dword [eax], 0x2298
call fcn.004322b0
mov dword [esp + 0x59c], eax
mov eax, dword [0x4a29a4]
shl eax, 8
xor eax, 0xb9ed8908
mov ecx, dword [0x4961c4]
add ecx, eax
mov dword [0x4961c4], ecx
mov eax, dword [esp + 0x59c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x138]
mov dword [ecx], eax
mov dword [ecx + 8], 0x4ac7fc
call fcn.00456c17
mov ecx, dword [0x49cf48]
mov edx, dword [0x494dfc]
or edx, ecx
mov dword [0x494dfc], edx
mov ecx, dword [esp + 0x59c]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x12
mov dword [esp + 0xa8], eax
call fcn.00422f30
mov eax, dword [0x499edc]
imul eax, eax, 0xa4d1cd7a
mov dword [0x499edc], eax
jmp 0x409dc7
mov eax, 0xe6c984
mov ecx, dword [0x49b4b4]
inc ecx
mov dword [0x49b4b4], ecx
mov dx, cx
mov word [0x4a6b04], dx
mov ecx, esp
mov dword [ecx + 4], 0x24
mov dword [ecx], 0x2a2
mov dword [esp + 0xa4], eax
call fcn.004322b0
mov dword [esp + 0x598], eax
mov dx, word [0x4a55d0]
mov ax, dx
imul eax, eax, 0x5313f07e
mov dx, ax
mov word [0x4a55d0], dx
mov eax, dword [esp + 0x598]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x138]
mov dword [ecx], eax
mov dword [ecx + 8], 0x4ac7fc
call fcn.00456c17
mov ecx, dword [0x4a36a8]
sub ecx, 0x6f9ce26f
mov esi, dword [esp + 0xa4]
cmp esi, ecx
mov dword [esp + 0xa0], eax
jle 0x409d6d
mov eax, 0x3e5113b3
mov ecx, dword [0x4a0664]
sar ecx, 4
mov edx, dword [0x497790]
shl edx, 5
and ecx, edx
cmp eax, ecx
jne 0x409d68
mov eax, dword [0x496014]
not eax
mov cx, ax
mov word [0x4a548c], cx
jmp 0x409da1
mov eax, 0x602e2578
mov ecx, dword [0x499900]
dec ecx
mov dword [0x499900], ecx
xor ecx, 0xa8408596
cmp eax, ecx
je 0x409d9c
mov eax, dword [0x4983b0]
or eax, 0x972128f9
mov dword [0x4983b0], eax
jmp 0x409da1
mov eax, dword [esp + 0x598]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x24
call fcn.00422f30
mov eax, dword [0x495b90]
and eax, 0x67dabb1d
mov dword [0x495b90], eax
mov eax, 0xfbff1c00
mov ecx, dword [0x499918]
add ecx, 0x90d4ea81
mov dword [0x499918], ecx
mov byte [esp + 0x56f], 0
mov ecx, dword [0x4967d0]
and ecx, 0xd3fa3a7a
mov dword [0x4967d0], ecx
mov ecx, dword [0x4ad098]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x138]
mov dword [edx], ecx
mov dword [esp + 0x9c], eax
call fcn.00456650
mov ecx, dword [0x4979b8]
mov edx, dword [esp + 0x9c]
cmp edx, ecx
mov dword [esp + 0x98], eax
je 0x409e44
mov eax, dword [0x491e94]
imul eax, eax, 0x81a1ddf7
mov dword [0x491e94], eax
mov eax, dword [0x491cc8]
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x49410c]
shl ecx, 9
mov edx, dword [0x4a0fd0]
mov esi, edx
inc esi
mov dword [0x4a0fd0], esi
mov esi, dword [0x49c370]
mov edi, esi
dec edi
mov dword [0x49c370], edi
imul edx, esi
and ecx, edx
mov bx, word [0x4aabb6]
movsx edx, bx
sar edx, 5
xor edx, 0x679ae7ec
cmp ecx, edx
mov dword [esp + 0x94], eax
jne 0x409ecc
mov eax, dword [0x491da4]
dec eax
mov dword [0x491da4], eax
mov ecx, dword [0x492510]
and ecx, eax
mov dword [0x492510], ecx
jmp 0x409f31
mov eax, 0xb08b5e34
mov ecx, dword [0x49a954]
xor ecx, 0x42b95232
cmp eax, ecx
je 0x409f2c
mov eax, dword [0x4a0970]
mov ecx, dword [0x49f6a0]
xor eax, ecx
or eax, 0xd9ccdd4d
mov dx, word [0x4a89f0]
mov cx, dx
dec ecx
mov dx, cx
mov word [0x4a89f0], dx
movsx ecx, dx
xor ecx, 0x38f9882d
cmp eax, ecx
jge 0x409f22
jmp 0x409f27
jmp 0x409f27
jmp 0x409f2c
jmp 0x409f31
mov eax, 0x6dbdf97f
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4ac95c
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], edx
call fcn.00456640
mov ecx, dword [0x4995b8]
add ecx, 0x5be75ece
mov dword [0x4995b8], ecx
mov ecx, esp
mov edx, dword [esp + 0x8c]
mov dword [ecx], edx
mov dword [esp + 0x88], eax
call fcn.004410d0
mov dword [esp + 0x134], eax
mov si, word [0x4abe0a]
movsx eax, si
shl eax, 9
mov dword [0x4a3164], eax
mov eax, dword [0x491cc8]
mov ecx, esp
mov edx, dword [esp + 0x8c]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov dword [0x4989dc], 0xf0b46223
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4630
mov dword [esp + 0x84], eax
call fcn.004322b0
mov dword [esp + 0x594], eax
mov eax, dword [0x49aea8]
mov ecx, dword [esp + 0x90]
cmp ecx, eax
jge 0x40a011
mov ax, word [0x4a94be]
mov cx, ax
add ecx, 0x37be8fe1
mov ax, cx
mov word [0x4a94be], ax
mov eax, 0xad58f7fa
mov ecx, dword [esp + 0x594]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x138]
mov dword [edx], ecx
mov dword [esp + 0x80], eax
call fcn.00456650
mov ecx, dword [0x499afc]
or ecx, 0xdd669d78
mov dword [0x499afc], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2214
mov dword [esp + 0x7c], eax
call fcn.004322b0
mov dword [esp + 0x590], eax
mov eax, dword [0x4a0204]
mov ecx, eax
inc ecx
mov dword [0x4a0204], ecx
mov ecx, dword [esp + 0x80]
cmp ecx, eax
jne 0x40a0a2
mov ax, word [0x4a4628]
mov cx, ax
add ecx, 0x8c613081
mov ax, cx
mov word [0x4a4628], ax
jmp 0x40a0ba
mov ax, word [0x4ab13a]
mov cx, ax
or ecx, 0xe7e1
mov ax, cx
mov word [0x4ab13a], ax
mov eax, 0x40004800
mov ecx, dword [esp + 0x594]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x78], eax
call fcn.00422f30
mov eax, dword [0x498aa0]
add eax, 0x696a165f
mov dword [0x498aa0], eax
mov eax, dword [esp + 0x590]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x570]
call fcn.0041af60
sub esp, 4
mov ecx, dword [0x4a17d4]
mov edx, dword [esp + 0x78]
cmp edx, ecx
mov dword [esp + 0x74], eax
jle 0x40a148
mov eax, dword [0x493ad8]
mov ecx, dword [0x49830c]
dec ecx
mov dword [0x49830c], ecx
sub eax, ecx
mov ecx, dword [0x49b7f4]
add eax, ecx
mov ecx, dword [0x495648]
or ecx, eax
mov dword [0x495648], ecx
jmp 0x40a160
mov eax, dword [0x499960]
add eax, 0xbdb34bab
mov ecx, dword [0x49c80c]
or ecx, eax
mov dword [0x49c80c], ecx
lea eax, [esp + 0x570]
lea ecx, [esp + 0x138]
mov edx, dword [esp + 0x590]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 0x1f
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], ecx
call fcn.00422f30
mov eax, dword [0x499524]
add eax, 0xfb3fc66d
mov dword [0x499524], eax
mov eax, dword [esp + 0x70]
mov ecx, eax
call fcn.00407400
lea ecx, [esp + 0x570]
mov dword [esp + 0x68], eax
call fcn.00407a00
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x64], ecx
call fcn.00418670
cmp eax, 0
jne 0x40a8eb
mov ax, word [0x4a71ac]
mov cx, ax
mov edx, ecx
inc edx
mov ax, dx
mov word [0x4a71ac], ax
imul ecx, ecx, 0xc117fb72
or ecx, 0x22c2
mov ax, cx
mov word [0x4a6dde], ax
mov ecx, dword [0x491c70]
mov edx, esp
lea esi, [esp + 0x138]
mov dword [edx + 4], esi
mov dword [edx], 0x104
mov dword [esp + 0x60], esi
call ecx
sub esp, 8
mov di, word [0x4aa3b6]
mov cx, di
inc ecx
mov di, cx
mov word [0x4aa3b6], di
movsx ecx, di
and ecx, 0xfb7d22df
mov edx, dword [0x49f3e8]
add edx, ecx
mov dword [0x49f3e8], edx
mov ecx, esp
mov edx, dword [esp + 0x60]
mov dword [ecx], edx
mov dword [esp + 0x5c], eax
call fcn.00453580
mov dword [esp + 0x134], eax
mov di, word [0x4a5d0a]
mov ax, di
imul eax, eax, 0xc1c00649
mov di, ax
mov word [0x4a5d0a], di
mov eax, dword [esp + 0x134]
add eax, 0xfffffffe
mov dword [esp + 0x134], eax
mov di, word [0x4a58fe]
mov ax, di
mov ecx, eax
dec ecx
mov di, cx
mov word [0x4a58fe], di
mov ecx, 0xefcd1954
sub ecx, eax
mov di, word [0x4a86ae]
mov ax, di
add eax, ecx
mov di, ax
mov word [0x4a86ae], di
mov eax, dword [esp + 0x134]
mov dword [esp + 0x130], eax
cmp dword [esp + 0x130], 0
jle 0x40a403
mov eax, 0x2020041b
mov ecx, dword [0x497da8]
mov edx, ecx
dec edx
mov dword [0x497da8], edx
sub ecx, 0x73a0deba
cmp eax, ecx
je 0x40a329
mov eax, dword [0x493a94]
and eax, 0x9f5f7acd
mov dword [0x493a94], eax
jmp 0x40a333
mov dword [0x4a1cc4], 0x155e1c9f
mov eax, dword [esp + 0x130]
movsx eax, byte [esp + eax + 0x138]
cmp eax, 0x5c
jne 0x40a3da
mov eax, dword [0x4925d4]
add eax, 0xf3eff3d9
mov dword [0x4925d4], eax
mov eax, dword [esp + 0x130]
inc eax
mov dword [esp + 0x130], eax
mov eax, dword [0x49305c]
xor eax, 0x3fb32999
mov dword [0x49305c], eax
mov eax, dword [esp + 0x130]
mov byte [esp + eax + 0x138], 0
mov eax, dword [0x49639c]
mov ecx, eax
inc ecx
mov dword [0x49639c], ecx
mov ecx, 0x5a014238
sub ecx, eax
mov dword [0x49dd38], ecx
mov eax, dword [esp + 0x130]
mov dword [esp + 0x134], eax
mov dx, word [0x4a565e]
movsx eax, dx
add eax, 0xeba04a70
mov ecx, dword [0x4983c8]
or eax, ecx
mov ecx, dword [0x495aa0]
or ecx, eax
mov dword [0x495aa0], ecx
jmp 0x40a403
mov eax, dword [0x49da30]
mov ecx, dword [0x49e2d0]
add ecx, eax
mov dword [0x49e2d0], ecx
mov eax, dword [esp + 0x130]
add eax, 0xffffffff
mov dword [esp + 0x130], eax
jmp 0x40a2e5
mov eax, 0x7fbdfff7
mov ecx, dword [0x498654]
mov edx, dword [0x492348]
inc edx
mov dword [0x492348], edx
add edx, 0x415fdd2c
or ecx, edx
cmp eax, ecx
jne 0x40a464
mov eax, 0x5ecbe2e0
mov ecx, dword [0x4924ac]
sar ecx, 6
or ecx, 0x2c65c65a
cmp eax, ecx
jge 0x40a45f
mov eax, dword [0x49cedc]
xor eax, 0x26b59316
mov ecx, dword [0x498f28]
sub ecx, eax
mov dword [0x498f28], ecx
jmp 0x40a464
mov eax, 0xbc3074af
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4ac95c
mov dword [esp + 0x58], eax
call fcn.00456640
mov ecx, dword [0x498e08]
xor ecx, 0xffffffff
add ecx, 0xc003915f
mov edx, dword [esp + 0x58]
cmp edx, ecx
mov dword [esp + 0x54], eax
jg 0x40a4c0
mov ax, word [0x4a3d58]
mov cx, ax
or ecx, 0x83c
mov ax, cx
mov word [0x4a3d58], ax
jmp 0x40a51b
mov ax, word [0x4a6c4e]
movsx ecx, ax
or ecx, 0x85b7b4
mov ax, word [0x4a681a]
movsx edx, ax
cmp ecx, edx
jg 0x40a516
mov eax, dword [0x49af6c]
mov ecx, eax
inc ecx
mov dword [0x49af6c], ecx
mov dx, word [0x4a57ce]
mov cx, dx
inc ecx
mov dx, cx
mov word [0x4a57ce], dx
movsx ecx, dx
or eax, ecx
mov ecx, dword [0x49eb34]
and ecx, eax
mov dword [0x49eb34], ecx
jmp 0x40a51b
mov eax, 0xbde9bc4a
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [esp + 0x50], eax
call fcn.004410d0
mov dword [esp + 0x134], eax
mov eax, dword [0x49b728]
sub eax, 0xa132602f
and eax, 0x57ea6beb
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jne 0x40a560
mov dword [0x49eb88], 0x28c8616f
mov eax, 0x847f0820
mov ecx, dword [0x491cc8]
mov edx, esp
lea esi, [esp + 0x138]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0x4c], eax
call ecx
sub esp, 8
mov ecx, dword [0x49f00c]
sub ecx, 0x2157d5a3
mov edx, dword [esp + 0x4c]
cmp edx, ecx
mov dword [esp + 0x48], eax
jl 0x40a5c0
mov eax, dword [0x49a378]
inc eax
mov dword [0x49a378], eax
and eax, 0x6db4274d
mov ecx, dword [0x4a1a48]
xor ecx, eax
mov dword [0x4a1a48], ecx
lea eax, [esp + 0x570]
lea ecx, [esp + 0x138]
mov edx, esp
mov dword [edx + 4], 0x1f
mov dword [edx], 0x4630
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], ecx
call fcn.004322b0
mov dword [esp + 0x58c], eax
mov si, word [0x4a7752]
movsx eax, si
and eax, 0xf0440201
or eax, 0xebbfd6a
mov ecx, dword [0x4a11fc]
xor ecx, eax
mov dword [0x4a11fc], ecx
mov eax, dword [esp + 0x58c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x138]
mov dword [ecx], eax
call fcn.00456650
mov ecx, dword [0x49b86c]
mov edx, ecx
dec edx
mov dword [0x49b86c], edx
mov si, word [0x4a8a4a]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x4a8a4a], si
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2214
mov dword [esp + 0x3c], eax
call fcn.004322b0
mov dword [esp + 0x588], eax
mov eax, dword [0x49750c]
imul eax, eax, 0x7b7d340
mov dword [0x49750c], eax
mov eax, dword [esp + 0x58c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.00422f30
mov si, word [0x4a99c0]
mov ax, si
inc eax
mov di, ax
mov word [0x4a99c0], di
movsx eax, si
and eax, 0x3bb35c59
mov ecx, dword [0x493434]
add ecx, eax
mov dword [0x493434], ecx
mov eax, dword [esp + 0x588]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x570]
call fcn.0041af60
sub esp, 4
mov ecx, dword [0x499890]
mov si, word [0x4a5b5c]
movsx edx, si
sar edx, 2
imul ecx, edx
add ecx, 0x83892d39
mov edx, dword [0x49c594]
or edx, ecx
mov dword [0x49c594], edx
mov ecx, dword [esp + 0x588]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x38], eax
call fcn.00422f30
mov eax, dword [0x4a15e4]
or eax, 0xb503b254
mov dword [0x4a15e4], eax
mov eax, dword [esp + 0x44]
mov ecx, eax
call fcn.00407400
lea ecx, [esp + 0x570]
mov dword [esp + 0x34], eax
call fcn.00407a00
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x30], ecx
call fcn.00418670
cmp eax, 0
jne 0x40a8a1
mov eax, dword [0x49b0b4]
add eax, 0xe67c77d1
mov dword [0x49b0b4], eax
mov eax, dword [0x491c70]
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x2c], edx
call eax
sub esp, 8
mov word [0x4a8a98], 0x4800
mov ecx, esp
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], edx
mov dword [ecx], 0x4ac95c
mov dword [esp + 0x28], eax
call fcn.00456640
mov ecx, dword [0x4985a8]
imul ecx, ecx, 0x88314a41
mov dword [0x4985a8], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x4630
mov dword [esp + 0x24], eax
call fcn.004322b0
mov dword [esp + 0x584], eax
mov eax, dword [0x4987e8]
mov si, word [0x4a82c0]
mov cx, si
inc ecx
mov di, cx
mov word [0x4a82c0], di
movsx ecx, si
imul eax, ecx
shl eax, 0xa
mov ecx, dword [0x492b8c]
sub ecx, eax
mov dword [0x492b8c], ecx
mov eax, dword [esp + 0x584]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx], eax
call fcn.00456650
mov ecx, dword [0x49a594]
shl ecx, 7
or ecx, 0x2c3f
mov si, word [0x4a50aa]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x4a50aa], si
mov ecx, dword [esp + 0x584]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x20], eax
call fcn.00422f30
mov si, word [0x4a523a]
mov ax, si
and eax, 0xf2de
mov si, ax
mov word [0x4a523a], si
mov eax, dword [0x4a2d90]
mov ecx, eax
dec ecx
mov dword [0x4a2d90], ecx
and eax, 0xaaa6eb90
or eax, 0xbc3a4450
cmp eax, 0xcf59e6df
jg 0x40a8e6
mov eax, dword [0x49e500]
mov ecx, eax
dec ecx
mov dword [0x49e500], ecx
and eax, 0xaa001998
mov ecx, dword [0x49dfa4]
imul ecx, eax
mov dword [0x49dfa4], ecx
jmp 0x40a8eb
mov eax, dword [0x493ca0]
mov ecx, eax
dec ecx
mov dword [0x493ca0], ecx
imul eax, eax, 0x724bd087
mov ecx, dword [0x4a1b40]
sub ecx, eax
mov dword [0x4a1b40], ecx
mov eax, 0x343b80da
mov ecx, dword [0x499c94]
add ecx, 0x739ee0c0
mov dword [0x499c94], ecx
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [esp + 0x1c], eax
call fcn.004410d0
mov si, word [0x4a8292]
mov cx, si
dec ecx
mov si, cx
mov word [0x4a8292], si
movsx ecx, si
imul ecx, ecx, 0x3b38a7a4
and ecx, 0xdca2485d
mov edx, dword [esp + 0x1c]
cmp edx, ecx
mov dword [esp + 0x18], eax
jge 0x40a99a
mov ax, word [0x4a4eb6]
movsx ecx, ax
sar ecx, 0xa
and ecx, 0x19edf59b
mov ax, word [0x4a9742]
movsx edx, ax
shl edx, 7
xor ecx, edx
mov edx, dword [0x4952c4]
xor edx, ecx
mov dword [0x4952c4], edx
mov eax, dword [0x491c7c]
mov ecx, esp
lea edx, [esp + 0x138]
mov dword [ecx], edx
mov dword [ecx + 4], 2
mov dword [esp + 0x14], edx
call eax
sub esp, 8
mov word [0x4a3f1a], 0x9cfd
mov ecx, esp
mov edx, dword [esp + 0x14]
mov dword [ecx], edx
mov dword [ecx + 4], 0x438
mov dword [esp + 0x10], eax
call fcn.00447960
mov si, word [0x4a46ae]
movsx eax, si
shl eax, 4
mov ecx, dword [0x49b3dc]
xor eax, ecx
xor eax, 0x2e297795
mov dword [0x49b3dc], eax
lea ecx, [esp + 0x570]
call fcn.0043ced0
add esp, 0x5b0
pop esi
pop edi
pop ebx
ret