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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x104
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
mov esi, dword [esp + 0x114]
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf0], esi
mov eax, dword [0x497954]
add eax, 0xda3a35
mov dword [0x497954], eax
mov eax, dword [0x4a2110]
and eax, 0x863b75fb
and eax, 0x99ab57db
cmp eax, 0xfb7ff6ec
je 0x40d795
mov eax, dword [0x4a0de4]
shl eax, 6
or eax, 0xb3d5aecc
mov ecx, dword [0x49f430]
sub ecx, eax
mov dword [0x49f430], ecx
mov eax, 0xda9adf71
mov ecx, dword [0x49f010]
dec ecx
mov dword [0x49f010], ecx
xor ecx, 0x7decf7d0
cmp eax, ecx
jge 0x40d7cd
mov eax, dword [0x4a0104]
mov ecx, dword [0x4a1e00]
xor ecx, eax
mov dword [0x4a1e00], ecx
jmp 0x40d7e5
mov ax, word [0x4a84f8]
mov cx, ax
or ecx, 0xea82
mov ax, cx
mov word [0x4a84f8], ax
xor eax, eax
mov ecx, dword [esp + 0xfc]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x7c], eax
call fcn.00413fa0
cmp eax, 0
jne 0x40d81b
mov dword [esp + 0x100], 0xfffffff4
jmp 0x40f216
mov eax, dword [0x49e218]
add eax, 0xa41d6538
mov dword [0x49e218], eax
mov eax, esp
lea ecx, [esp + 0xa0]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd0]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.00414bf0
mov eax, dword [0x495570]
inc eax
mov dword [0x495570], eax
imul eax, eax, 0x5e048c49
or eax, 0xe2aa
mov dx, word [0x4a6644]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x4a6644], dx
mov eax, dword [esp + 0xfc]
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00434450
cmp eax, 0
jge 0x40d99b
mov eax, dword [0x493cf0]
xor eax, 0x9441
or eax, 0x6b3e
mov cx, word [0x4a4e42]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4a4e42], cx
cmp dword [esp + 0xf0], 0
je 0x40d922
xor eax, eax
mov ecx, dword [esp + 0xf0]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x78], eax
call fcn.00422fa0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40d91d
jmp 0x40f1b1
jmp 0x40d922
mov eax, dword [0x497cb4]
and eax, 0xa1eb2343
mov ecx, dword [0x49b86c]
sub ecx, eax
mov dword [0x49b86c], ecx
cmp dword [esp + 0xf4], 0
je 0x40d97c
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00444fe0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40d977
jmp 0x40f1b1
jmp 0x40d97c
mov eax, dword [0x4a2f94]
xor eax, 0xa4602136
mov dword [0x4a2f94], eax
mov dword [esp + 0x100], 0
jmp 0x40f216
mov eax, 0xf0426b0
mov ecx, dword [0x499a00]
sar ecx, 6
cmp eax, ecx
jle 0x40d9c0
mov eax, dword [0x492e68]
add eax, 0xa1a6c3f9
mov dword [0x492e68], eax
lea eax, [esp + 0xd0]
mov ecx, dword [esp + 0xf8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00444fe0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40d9ef
jmp 0x40f1b1
mov eax, 0x5effd6ff
mov cx, word [0x4a55b2]
movsx edx, cx
xor edx, 0xffffffff
and edx, 0x2caaa4e6
cmp eax, edx
jl 0x40da2e
mov eax, dword [0x494844]
dec eax
mov dword [0x494844], eax
mov ecx, dword [0x49f878]
imul eax, ecx
imul eax, eax, 0x6dfee4f2
mov dword [0x49f878], eax
lea eax, [esp + 0xc4]
mov ecx, dword [esp + 0xfc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00444fe0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40da5d
jmp 0x40f1b1
mov eax, 0x5fef39fc
mov ecx, dword [0x49f69c]
xor ecx, 0x2eb5caa
mov dword [0x49f69c], ecx
mov dword [esp + 0xc4], 1
mov dword [esp + 0xd0], 1
mov ecx, dword [0x49f148]
mov edx, ecx
inc edx
mov dword [0x49f148], edx
sub ecx, 0xde7958d2
and ecx, 0x2bf9fb7f
cmp eax, ecx
jge 0x40dad3
mov eax, dword [0x49a0d0]
cmp eax, 0x97608a75
jne 0x40dace
mov eax, dword [0x4985bc]
not eax
mov cx, ax
mov word [0x4a7d24], cx
jmp 0x40dad3
lea eax, [esp + 0xb8]
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx + 4]
add ecx, 2
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0044d410
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40db08
jmp 0x40f1b1
lea eax, [esp + 0xb8]
xor ecx, ecx
mov edx, dword [0x49d7f8]
mov dword [0x499f44], edx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x74], ecx
call fcn.00422fa0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40db46
jmp 0x40f1b1
mov eax, 0x133d5000
mov ecx, dword [0x49d110]
cmp eax, ecx
jne 0x40dba9
mov eax, dword [0x49ad70]
inc eax
mov dword [0x49ad70], eax
or eax, 0xa3c71bf3
mov ecx, dword [0x4a19e0]
shl ecx, 5
mov dx, word [0x4a85d4]
mov si, dx
inc esi
mov dx, si
mov word [0x4a85d4], dx
movsx esi, dx
or ecx, esi
cmp eax, ecx
je 0x40dba4
mov eax, dword [0x4a0adc]
imul eax, eax, 0x1b692e3e
mov dword [0x4a0adc], eax
jmp 0x40dba9
lea eax, [esp + 0xac]
mov ecx, 2
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 0x70], ecx
call fcn.0044d410
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40dbde
jmp 0x40f1b1
mov eax, dword [0x495b94]
add eax, 0x2a9b668c
cmp eax, 0xdae7b600
jl 0x40dc2c
mov eax, 0x7694b2c8
mov ecx, dword [0x496d50]
sar ecx, 1
cmp eax, ecx
jg 0x40dc1d
mov eax, dword [0x49234c]
or eax, 0x3e74a8ce
mov dword [0x49234c], eax
jmp 0x40dc27
mov dword [0x49f3c0], 0x87a6aabd
jmp 0x40dc2c
lea eax, [esp + 0xa0]
mov ecx, 3
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 0x6c], ecx
call fcn.0044d410
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40dc61
jmp 0x40f1b1
mov eax, 0x597ffd98
mov cx, word [0x4a6b28]
mov dx, cx
xor edx, 0xc5f0
mov cx, dx
mov word [0x4a6b28], cx
mov edx, esp
lea esi, [esp + 0xc4]
mov dword [edx], esi
mov dword [esp + 0x68], eax
call fcn.00418030
mov edx, eax
sar edx, 0x1f
shr edx, 0x1b
mov esi, eax
add esi, edx
and esi, 0xffffffe0
sub eax, esi
mov dword [esp + 0xdc], eax
mov eax, dword [0x49967c]
dec eax
mov dword [0x49967c], eax
mov edx, dword [esp + 0x68]
cmp edx, eax
jge 0x40dcd7
mov eax, dword [0x492bd4]
and eax, 0x68284115
mov dword [0x492bd4], eax
jmp 0x40dcf0
mov eax, dword [0x497a10]
inc eax
mov dword [0x497a10], eax
mov ecx, dword [0x4922a0]
sub ecx, eax
mov dword [0x4922a0], ecx
cmp dword [esp + 0xdc], 0x1f
jge 0x40dddf
lea eax, [esp + 0xd0]
mov ecx, dword [0x49e4b0]
imul ecx, ecx, 0xe2aa0610
mov dword [0x49e4b0], ecx
mov ecx, dword [esp + 0xdc]
mov edx, 0x1f
sub edx, ecx
mov dword [esp + 0xdc], edx
mov ecx, dword [0x49a778]
imul ecx, ecx, 0xefdbdfff
mov dword [0x49a778], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408800
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40dd66
jmp 0x40f1b1
lea eax, [esp + 0xc4]
mov ecx, dword [0x493560]
add ecx, 0xecce67af
mov dword [0x493560], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408800
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40dda7
jmp 0x40f1b1
mov ax, word [0x4a475e]
movsx ecx, ax
sar ecx, 4
add ecx, 0xddcc3a2d
or ecx, 0xcbe49ba5
cmp ecx, 0x6f1efb97
jg 0x40ddda
mov eax, dword [0x493a58]
add eax, 0x9444f975
mov dword [0x493a58], eax
jmp 0x40ddea
mov dword [esp + 0xdc], 0
mov eax, dword [0x49b020]
sar eax, 9
and eax, 0xed4b73f7
xor eax, 0xf38a0a9c
mov ecx, dword [0x49b494]
or ecx, eax
mov dword [0x49b494], ecx
mov eax, dword [esp + 0xd4]
dec eax
mov dword [esp + 0xe4], eax
mov dx, word [0x4a3c74]
mov ax, dx
add eax, 0xff7ae5ce
mov dx, ax
mov word [0x4a3c74], dx
mov eax, dword [esp + 0xc8]
dec eax
mov dword [esp + 0xe0], eax
mov dx, word [0x4abf5a]
mov ax, dx
dec eax
mov si, ax
mov word [0x4abf5a], si
movsx eax, dx
mov dword [0x49f2f4], eax
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc4]
mov dword [ecx], eax
call fcn.00408800
mov dx, word [0x4a93b4]
mov cx, dx
dec ecx
mov si, cx
mov word [0x4a93b4], si
movsx ecx, dx
imul ecx, ecx, 0xe343ab5a
mov dword [0x49566c], ecx
mov dword [esp + 0x64], eax
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004022c0
cmp eax, 0
jl 0x40df5a
mov eax, dword [0x498e0c]
shl eax, 6
mov ecx, dword [0x4a3548]
and eax, ecx
mov dx, word [0x4a431e]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x4a431e], dx
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov esi, dword [ecx + eax*4]
inc esi
mov dword [ecx + eax*4], esi
mov eax, dword [0x4977dc]
xor eax, 0xeb2fbf68
mov dword [0x4977dc], eax
mov eax, esp
lea ecx, [esp + 0xc4]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xd0]
mov dword [eax + 4], ecx
mov dword [eax], ecx
call fcn.00448330
mov ecx, dword [0x496578]
imul ecx, ecx, 0x20e2112
mov dword [0x496578], ecx
mov dword [esp + 0x60], eax
jmp 0x40deac
mov word [0x4a752e], 0x892e
mov eax, dword [esp + 0xe4]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
shl eax, 5
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xc4]
mov dword [ecx], eax
call fcn.00442a00
mov ecx, dword [0x49becc]
add ecx, 0xec24c2a7
mov dword [0x49becc], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xe8]
cmp eax, dword [esp + 0xe0]
jle 0x40efaf
mov eax, dword [0x49760c]
sar eax, 5
add eax, 0x3678e2d0
mov dword [0x494d1c], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xcc]
cmp eax, dword [edx + ecx*4]
jb 0x40e01f
mov eax, dword [esp + 0xe8]
sub eax, dword [esp + 0xe0]
sub eax, 1
mov ecx, dword [esp + 0xc0]
mov dword [ecx + eax*4], 0xffffffff
jmp 0x40e7b8
mov eax, 0x72a30b69
mov ecx, dword [0x495ef4]
add ecx, 0xa63a66dd
mov dword [0x495ef4], ecx
mov ecx, dword [0x494f6c]
and ecx, 0x14111803
mov dword [0x494f6c], ecx
mov ecx, dword [0x492980]
add ecx, 0xe0bf6faa
or ecx, 0x161e
mov dx, word [0x4aa032]
mov si, dx
imul esi, ecx
mov dx, si
mov word [0x4aa032], dx
mov ecx, dword [esp + 0xe0]
mov esi, dword [esp + 0xcc]
mov ecx, dword [esi + ecx*4]
mov dword [esp + 0x84], ecx
mov dx, word [0x4a3fc0]
movsx ecx, dx
not ecx
imul ecx, ecx, 0x39f530d6
xor ecx, 0xbfeb0ec0
mov esi, dword [0x4977e8]
and esi, ecx
mov dword [0x4977e8], esi
movzx ecx, word [esp + 0x84]
mov dword [esp + 0x8c], ecx
mov ecx, dword [0x495ac4]
mov esi, ecx
dec esi
mov dword [0x495ac4], esi
mov esi, dword [0x49d878]
mov edi, esi
inc edi
mov dword [0x49d878], edi
imul esi, esi, 0x4cc50f8b
and ecx, esi
cmp eax, ecx
jg 0x40e104
mov eax, dword [0x49e600]
and eax, 0xb19cbfb9
mov ecx, dword [0x49cd0c]
or ecx, eax
mov dword [0x49cd0c], ecx
mov eax, 0x42c1879a
movzx ecx, word [esp + 0x86]
mov dword [esp + 0x88], ecx
mov ecx, dword [0x4937d0]
and ecx, 0x784f24ba
mov dword [0x4937d0], ecx
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xd8]
mov ecx, dword [edx + ecx*4]
mov edx, dword [esp + 0x88]
xor esi, esi
mov dword [esp + 0x58], eax
mov eax, ecx
mov dword [esp + 0x54], edx
mov edx, esi
mov ecx, dword [esp + 0x54]
div ecx
mov dword [esp + 0x98], eax
mov eax, dword [0x496f0c]
mov ecx, dword [0x4992a0]
add ecx, eax
mov dword [0x4992a0], ecx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x98]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x90], eax
mov eax, dword [0x49b93c]
not eax
mov ecx, dword [0x4a3930]
imul ecx, ecx, 0x5e52da7
add eax, ecx
mov di, word [0x4a9674]
mov cx, di
or ecx, eax
mov di, cx
mov word [0x4a9674], di
mov eax, dword [esp + 0x90]
shl eax, 0x10
mov dword [esp + 0x90], eax
mov eax, dword [0x496d80]
shl eax, 5
mov ecx, dword [0x4936dc]
dec ecx
mov dword [0x4936dc], ecx
imul eax, ecx
mov ecx, dword [esp + 0x58]
cmp ecx, eax
jg 0x40e213
mov ax, word [0x4a79ce]
mov cx, ax
add ecx, 0xc1fb7cfb
mov ax, cx
mov word [0x4a79ce], ax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
movzx eax, word [ecx + eax*4 - 2]
mov ecx, dword [esp + 0x90]
or ecx, eax
mov dword [esp + 0x90], ecx
mov eax, dword [0x49a5dc]
add eax, 0x1be1a487
mov dword [0x49a5dc], eax
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x8c]
imul eax, ecx
mov dword [esp + 0x80], eax
mov dx, word [0x4a8fcc]
movsx eax, dx
shr eax, 0xa
imul eax, eax, 0x16554d5b
mov ecx, 0x8b298534
sub ecx, eax
mov dx, word [0x4a3eda]
mov ax, dx
xor eax, ecx
mov dx, ax
mov word [0x4a3eda], dx
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x80]
jae 0x40e385
mov ax, word [0x4a39a4]
mov cx, ax
add ecx, 0x732d06aa
mov ax, cx
mov word [0x4a39a4], ax
mov ecx, dword [esp + 0x98]
dec ecx
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x90]
add edx, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [0x49dd14]
add ecx, 0xfbf9b3c8
mov dword [0x49dd14], ecx
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x84]
mov byte [esp + 0x53], cl
jb 0x40e322
mov eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x80]
setb cl
mov byte [esp + 0x53], cl
mov al, byte [esp + 0x53]
test al, 1
jne 0x40e333
jmp 0x40e35e
mov eax, dword [esp + 0x98]
add eax, 0xffffffff
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x90]
mov dword [esp + 0x90], eax
jmp 0x40e2f1
mov eax, 0x380cd71b
mov ecx, dword [0x49a418]
cmp eax, ecx
jl 0x40e380
mov eax, dword [0x4a2cbc]
and eax, 0x154f1406
mov dword [0x4a2cbc], eax
jmp 0x40e385
mov ax, word [0x4aa448]
movsx ecx, ax
sar ecx, 6
mov edx, 0x2364f5a0
sub edx, ecx
and edx, 0xbfbb83a2
mov ecx, dword [0x49c3a4]
mov esi, ecx
dec esi
mov dword [0x49c3a4], esi
xor ecx, 0x9ba89b10
cmp edx, ecx
jl 0x40e3d3
mov ax, word [0x4ab8a4]
mov cx, ax
and ecx, 0x17e4
mov ax, cx
mov word [0x4ab8a4], ax
mov eax, 0xfdfdfefd
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x90]
sub edx, ecx
mov dword [esp + 0x90], edx
mov ecx, dword [0x4a1fc8]
xor ecx, 0xffffffff
add ecx, 0xebcb1848
cmp eax, ecx
jg 0x40e41e
mov ax, word [0x4aa44e]
mov cx, ax
imul ecx, ecx, 0x61a6e63b
mov ax, cx
mov word [0x4aa44e], ax
mov eax, 0x3e865e4a
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
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 + 0x9c], eax
mov eax, dword [0x49ca30]
mov ecx, eax
dec ecx
mov dword [0x49ca30], ecx
xor eax, 0x124f8252
mov ecx, dword [0x496b4c]
or ecx, eax
mov dword [0x496b4c], ecx
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x9c]
imul ecx, edx
sub eax, ecx
mov dword [esp + 0x94], eax
mov eax, dword [0x4932f4]
mov ecx, eax
inc ecx
mov dword [0x4932f4], ecx
imul eax, eax, 0xb883df31
sub eax, 0x10962588
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jg 0x40e4d5
mov eax, dword [0x4950e8]
mov ecx, eax
inc ecx
mov dword [0x4950e8], ecx
and eax, 0x75c2d7ba
mov ecx, dword [0x49cb98]
imul ecx, eax
mov dword [0x49cb98], ecx
mov eax, 0xfffdc7bf
mov ecx, dword [esp + 0x94]
shl ecx, 0x10
mov dword [esp + 0x94], ecx
mov ecx, dword [0x4a0408]
inc ecx
mov dword [0x4a0408], ecx
and ecx, 0x23f04430
cmp eax, ecx
jl 0x40e596
mov eax, 0xb21f74ba
mov ecx, dword [0x49755c]
mov edx, ecx
inc edx
mov dword [0x49755c], edx
mov edx, dword [0x496e18]
sar edx, 1
xor ecx, edx
cmp eax, ecx
jle 0x40e566
mov eax, dword [0x497e0c]
imul eax, eax, 0x5908e53
mov cx, word [0x4a697e]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4a697e], cx
movsx edx, cx
and eax, edx
mov edx, dword [0x495594]
imul edx, eax
mov dword [0x495594], edx
jmp 0x40e591
mov ax, word [0x4aa436]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4aa436], dx
movsx ecx, ax
xor ecx, 0xdb005a0a
mov esi, dword [0x49b130]
and esi, ecx
mov dword [0x49b130], esi
jmp 0x40e596
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xd8]
movzx eax, word [ecx + eax*4 - 4]
mov ecx, dword [esp + 0x94]
or ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x4a17ac]
mov ecx, dword [0x4a20b0]
sub eax, ecx
cmp eax, 0x1b679640
jle 0x40e60e
mov eax, 0x41a03d65
mov cx, word [0x4a5556]
movsx edx, cx
mov cx, word [0x4ac630]
movsx esi, cx
add esi, 0x279771f1
or edx, esi
cmp eax, edx
jl 0x40e609
mov eax, dword [0x494cb4]
add eax, 0x81143113
mov dword [0x494cb4], eax
jmp 0x40e60e
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x8c]
imul eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [0x49e5ac]
sar eax, 6
imul eax, eax, 0x47adeb1f
mov ecx, dword [0x49cfc0]
xor ecx, eax
mov dword [0x49cfc0], ecx
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x80]
jae 0x40e724
mov eax, dword [0x4a0664]
mov ecx, eax
dec ecx
mov dword [0x4a0664], ecx
add eax, 0xe2dd2585
and eax, 0x3e52907d
mov dword [0x49dd84], eax
mov eax, dword [esp + 0x9c]
dec eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x94]
add ecx, eax
mov dword [esp + 0x94], ecx
mov eax, dword [0x4a0d28]
or eax, 0xc79227bf
mov dword [0x4a0d28], eax
xor eax, eax
mov cl, al
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x84]
mov byte [esp + 0x47], cl
jb 0x40e6d9
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x80]
setb cl
mov byte [esp + 0x47], cl
mov al, byte [esp + 0x47]
test al, 1
jne 0x40e6ea
jmp 0x40e715
mov eax, dword [esp + 0x9c]
add eax, 0xffffffff
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x94]
mov dword [esp + 0x94], eax
jmp 0x40e6a8
mov eax, dword [0x49b88c]
xor eax, 0xadc8ce6f
mov dword [0x49b88c], eax
mov eax, 0x71dfc12b
mov cx, word [0x4aba3a]
mov dx, cx
xor edx, 0x6ea8
mov cx, dx
mov word [0x4aba3a], cx
mov edx, dword [esp + 0x80]
mov esi, dword [esp + 0x94]
sub esi, edx
mov dword [esp + 0x94], esi
mov cx, word [0x4a3f16]
movsx edx, cx
cmp eax, edx
jle 0x40e77b
mov eax, dword [0x49a5e8]
xor eax, 0x276019c1
mov dword [0x49a5e8], eax
mov eax, dword [esp + 0x98]
shl eax, 0x10
mov ecx, dword [esp + 0x9c]
or eax, ecx
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xe0]
sub ecx, edx
mov edx, dword [esp + 0xc0]
mov dword [edx + ecx*4 - 4], eax
mov eax, dword [0x4a2258]
or eax, 0x6c874841
mov dword [0x4a2258], eax
mov eax, dword [0x4a1e98]
add eax, 0xb32c94c
mov ecx, dword [0x49d0a4]
imul ecx, eax
mov dword [0x49d0a4], ecx
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + eax*4 - 4]
inc edx
mov dword [ecx + eax*4 - 4], edx
mov dword [0x49c968], 0x55416c3e
lea eax, [esp + 0xac]
xor ecx, ecx
mov dx, word [0x4aad4a]
mov si, dx
or esi, 0x60b7
mov dx, si
mov word [0x4aad4a], dx
mov esi, dword [esp + 0xe8]
mov edi, dword [esp + 0xe0]
sub esi, edi
mov edi, dword [esp + 0xc0]
mov ebx, dword [edi + esi*4 - 4]
dec ebx
mov dword [edi + esi*4 - 4], ebx
mov esi, dword [0x498fd4]
imul esi, esi, 0xd80d36f0
mov edi, dword [0x4a0328]
and esi, edi
and esi, 0xcb14d630
mov dword [0x4a0328], esi
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x40], ecx
call fcn.00422fa0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40e887
jmp 0x40f1b1
mov eax, dword [0x49f028]
mov ecx, eax
dec ecx
mov dword [0x49f028], ecx
mov ecx, dword [0x493d30]
dec ecx
mov dword [0x493d30], ecx
cmp eax, ecx
jge 0x40e8cb
mov eax, dword [0x49e49c]
mov ecx, eax
inc ecx
mov dword [0x49e49c], ecx
mov ecx, 0x5a732189
sub ecx, eax
mov eax, dword [0x49a088]
xor eax, ecx
mov dword [0x49a088], eax
cmp dword [esp + 0xe0], 1
jge 0x40e8e4
xor eax, eax
mov dword [esp + 0x3c], eax
jmp 0x40e8fc
mov eax, dword [esp + 0xe0]
sub eax, 1
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0xac]
mov edx, dword [esp + 0xb4]
mov dword [edx], eax
mov dword [0x497920], 0x10629d08
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xcc]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0xb4]
mov dword [edx + 4], eax
mov eax, dword [0x4990a0]
add eax, 0xc5054b43
mov dword [0x4990a0], eax
mov eax, dword [esp + 0xe8]
sub eax, dword [esp + 0xe0]
sub eax, 1
mov edx, dword [esp + 0xc0]
mov eax, dword [edx + eax*4]
mov dword [esp], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00449e00
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40e984
jmp 0x40f1b1
lea eax, [esp + 0xa0]
xor ecx, ecx
mov dx, word [0x4a6854]
mov si, dx
xor esi, 0x1854
mov dx, si
mov word [0x4a6854], dx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x38], ecx
call fcn.00422fa0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40e9d0
jmp 0x40f1b1
mov eax, dword [0x4a3404]
dec eax
mov dword [0x4a3404], eax
and eax, 0xe53b00cf
mov ecx, dword [0x4949e4]
add ecx, 0x3d9cd8ea
xor ecx, 0x511d917d
cmp eax, ecx
jg 0x40ea3e
mov eax, dword [0x49a650]
mov ecx, eax
inc ecx
mov dword [0x49a650], ecx
mov ecx, dword [0x49e530]
and ecx, 0xcf0b704d
or eax, ecx
cmp eax, 0x148e3a3
jge 0x40ea39
mov ax, word [0x4a733c]
mov cx, ax
xor ecx, 0x763b
mov ax, cx
mov word [0x4a733c], ax
jmp 0x40ea3e
cmp dword [esp + 0xe8], 2
jge 0x40ea57
xor eax, eax
mov dword [esp + 0x34], eax
jmp 0x40ea6f
mov eax, dword [esp + 0xe8]
sub eax, 2
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xa8]
mov dword [ecx], eax
mov eax, dword [0x4a3518]
add eax, 0x9260bdfc
mov ecx, dword [0x4924bc]
or ecx, eax
mov dword [0x4924bc], ecx
cmp dword [esp + 0xe8], 1
jge 0x40eaad
xor eax, eax
mov dword [esp + 0x30], eax
jmp 0x40eac5
mov eax, dword [esp + 0xe8]
sub eax, 1
mov ecx, dword [esp + 0xd8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov ecx, 0xae5887c1
mov edx, dword [esp + 0xa8]
mov dword [edx + 4], eax
mov eax, dword [0x495cc0]
mov edx, 0x642354b5
sub edx, eax
mov eax, dword [0x49aec4]
xor eax, edx
mov dword [0x49aec4], eax
mov eax, dword [esp + 0xe8]
mov edx, dword [esp + 0xd8]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0xa8]
mov dword [edx + 8], eax
mov eax, dword [0x49be0c]
imul eax, eax, 0xf689104e
sub ecx, eax
cmp ecx, 0xf975ffb4
jne 0x40eb83
mov eax, 0x5d12c2f2
mov ecx, dword [0x49857c]
sar ecx, 1
or ecx, 0x97c5febb
cmp eax, ecx
jg 0x40eb5d
mov ax, word [0x4a8e4e]
mov cx, ax
add ecx, 0x1030121
mov ax, cx
mov word [0x4a8e4e], ax
jmp 0x40eb7e
mov eax, dword [0x4a2e7c]
mov ecx, eax
dec ecx
mov dword [0x4a2e7c], ecx
or eax, 0x91e3f8c8
mov ecx, dword [0x4a0968]
add ecx, eax
mov dword [0x4a0968], ecx
jmp 0x40eb83
jmp 0x40eb88
lea eax, [esp + 0xac]
lea ecx, [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004022c0
cmp eax, 0
jg 0x40e7fb
lea eax, [esp + 0xac]
lea ecx, [esp + 0xc4]
mov dx, word [0x4a4eb2]
mov si, dx
or esi, 0x2015
mov dx, si
mov word [0x4a4eb2], dx
mov esi, dword [esp + 0xe8]
sub esi, dword [esp + 0xe0]
sub esi, 1
mov edi, dword [esp + 0xc0]
mov esi, dword [edi + esi*4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call fcn.00449e00
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40ec13
jmp 0x40f1b1
lea eax, [esp + 0xac]
mov ecx, dword [0x497a88]
mov edx, ecx
dec edx
mov dword [0x497a88], edx
mov edx, dword [0x4956c4]
or ecx, edx
mov edx, dword [0x499dd8]
add edx, ecx
mov dword [0x499dd8], edx
mov ecx, dword [esp + 0xe8]
sub ecx, dword [esp + 0xe0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408800
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40ec74
jmp 0x40f1b1
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xac]
mov edx, dword [0x49b7d0]
sar edx, 1
mov si, word [0x4a749e]
movsx edi, si
not edi
and edx, edi
xor edx, 0xe7524c23
mov dword [0x4a0998], edx
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00448330
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40ecc9
jmp 0x40f1b1
mov eax, 0xe4c63153
mov ecx, dword [0x4936ec]
not ecx
mov edx, dword [0x49ec8c]
mov esi, edx
inc esi
mov dword [0x49ec8c], esi
or ecx, edx
mov edx, dword [0x49254c]
or ecx, edx
cmp eax, ecx
je 0x40ed26
mov ax, word [0x4ab4de]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4ab4de], ax
movsx ecx, ax
mov edx, dword [0x4a2910]
and ecx, edx
and ecx, 0xb2197715
mov dword [0x4a2910], ecx
jmp 0x40ed4b
mov eax, dword [0x49c014]
mov ecx, eax
dec ecx
mov dword [0x49c014], ecx
mov dx, word [0x4a61b4]
mov cx, dx
imul ecx, eax
mov dx, cx
mov word [0x4a61b4], dx
lea eax, [esp + 0xd0]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 0x2c], ecx
call fcn.00413fa0
cmp eax, 0
jge 0x40ef72
lea eax, [esp + 0xac]
lea ecx, [esp + 0xc4]
mov edx, dword [0x499cd0]
shl edx, 8
mov si, word [0x4a4038]
mov di, si
and edx, edi
and edx, 0xc500
mov si, dx
mov word [0x4a4038], si
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00444fe0
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40edc5
jmp 0x40f1b1
lea eax, [esp + 0xac]
mov ecx, dword [0x492598]
add ecx, 0x10062761
mov dword [0x492598], ecx
mov ecx, dword [esp + 0xe8]
sub ecx, dword [esp + 0xe0]
sub ecx, 1
shl ecx, 5
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00408800
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40ee13
jmp 0x40f1b1
mov eax, 0xbcc935fb
mov cx, word [0x4ac026]
movsx edx, cx
shl edx, 0xa
mov cx, word [0x4a9074]
mov si, cx
dec esi
mov di, si
mov word [0x4a9074], di
movsx esi, cx
and esi, 0x170207d5
xor edx, esi
cmp eax, edx
jge 0x40eeb7
mov ax, word [0x4ab194]
movsx ecx, ax
mov ax, word [0x4aa842]
movsx edx, ax
xor edx, 0x705a9ec8
or ecx, edx
cmp ecx, 0xf3c470af
jge 0x40ee87
mov eax, dword [0x49bce4]
xor eax, 0x5bfb0919
mov dword [0x49bce4], eax
jmp 0x40eeb2
mov eax, dword [0x4a01b0]
mov ecx, dword [0x494130]
and ecx, 0xdeec9c53
or eax, ecx
mov ecx, dword [0x49bd8c]
cmp eax, ecx
je 0x40eead
jmp 0x40eead
jmp 0x40eeb2
jmp 0x40eeb7
lea eax, [esp + 0xd0]
lea ecx, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00442e80
mov dword [esp + 0xec], eax
cmp eax, 0
je 0x40eeea
jmp 0x40f1b1
mov eax, 0x75890c05
mov cx, word [0x4aa4b8]
movsx edx, cx
add edx, 0xa633f4ac
mov cx, word [0x4a39e6]
mov si, cx
dec esi
mov di, si
mov word [0x4a39e6], di
movsx esi, cx
and edx, esi
cmp eax, edx
jle 0x40ef30
mov eax, dword [0x4965ac]
or eax, 0xfefdbde7
mov dword [0x4965ac], eax
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe0]
sub eax, ecx
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx + eax*4 - 4]
dec edx
mov dword [ecx + eax*4 - 4], edx
mov si, word [0x4a90ce]
mov ax, si
dec eax
mov si, ax
mov word [0x4a90ce], si
movsx eax, si
and eax, 0x3334a91c
mov dword [0x4a29f8], eax
mov eax, dword [0x4989d8]
mov ecx, eax
dec ecx
mov dword [0x4989d8], ecx
mov ecx, 0xe8f50d8e
sub ecx, eax
xor ecx, 0xac10f981
mov eax, dword [0x49f938]
sub eax, ecx
mov dword [0x49f938], eax
mov eax, dword [esp + 0xe8]
add eax, 0xffffffff
mov dword [esp + 0xe8], eax
jmp 0x40dfad
mov ax, word [0x4a40ee]
mov cx, ax
imul ecx, ecx, 0xd47cbf77
mov ax, cx
mov word [0x4a40ee], ax
cmp dword [esp + 0xf0], 0
je 0x40f056
mov eax, dword [0x4a2b80]
xor eax, 0xcea4
mov cx, word [0x4a5128]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4a5128], cx
mov eax, dword [esp + 0xf0]
mov edx, esp
lea esi, [esp + 0xb8]
mov dword [edx + 4], esi
mov dword [edx], eax
call fcn.00444fe0
mov edx, dword [0x4a0778]
imul edx, edx, 0xc3bbefe7
mov dword [0x4a0778], edx
mov edx, dword [esp + 0xf8]
mov edx, dword [edx]
mov esi, dword [esp + 0xfc]
mov esi, dword [esi]
imul edx, esi
mov esi, dword [esp + 0xf0]
mov dword [esi], edx
mov edx, dword [0x4945c0]
or edx, 0x9bcc20dc
mov dword [0x4945c0], edx
mov dword [esp + 0x28], eax
mov eax, dword [0x49644c]
mov ecx, eax
dec ecx
mov dword [0x49644c], ecx
mov dx, word [0x4a8f52]
mov cx, dx
inc ecx
mov dx, cx
mov word [0x4a8f52], dx
movsx ecx, dx
lea eax, [eax + ecx + 0xb5e6f8e]
mov ecx, dword [0x49a988]
and ecx, 0x2a659d56
cmp eax, ecx
jl 0x40f0a6
mov eax, dword [0x4987c4]
and eax, 0x9674f52d
mov dword [0x4987c4], eax
cmp dword [esp + 0xf4], 0
je 0x40f199
xor eax, eax
mov ecx, dword [0x49fd84]
imul ecx, ecx, 0xaddf37de
mov dword [0x49fd84], ecx
mov ecx, dword [esp + 0xdc]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0xd0]
mov dword [edx], ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
call fcn.00442a00
mov si, word [0x4a9308]
mov cx, si
add ecx, 0x88ebfd56
mov si, cx
mov word [0x4a9308], si
mov ecx, dword [esp + 0xf4]
mov edx, esp
mov edi, dword [esp + 0x20]
mov dword [edx + 4], edi
mov dword [edx], ecx
mov dword [esp + 0x1c], eax
call fcn.00444fe0
mov dword [0x4a04e0], 0xe71c4c41
mov ecx, dword [esp + 0xf8]
mov ecx, dword [ecx]
mov edx, dword [esp + 0xf4]
mov dword [edx], ecx
mov ecx, dword [0x4a1cd8]
mov edx, dword [0x49ba84]
not edx
add edx, 0xfa4149e2
and ecx, edx
mov edx, dword [0x498730]
and edx, ecx
mov dword [0x498730], edx
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x18], eax
call fcn.00413fa0
cmp eax, 0
jne 0x40f190
mov eax, dword [esp + 0xf4]
mov dword [eax], 1
mov word [0x4a5e2a], 0x59c8
mov ax, word [0x4a4c78]
mov cx, ax
xor ecx, 0x5d87
mov ax, cx
mov word [0x4a4c78], ax
mov eax, esp
lea ecx, [esp + 0xa0]
mov dword [eax + 0x10], ecx
lea ecx, [esp + 0xac]
mov dword [eax + 0xc], ecx
lea ecx, [esp + 0xb8]
mov dword [eax + 8], ecx
lea ecx, [esp + 0xc4]
mov dword [eax + 4], ecx
lea ecx, [esp + 0xd0]
mov dword [eax], ecx
mov dword [eax + 0x14], 0
call fcn.0041c860
mov eax, dword [0x49fd30]
mov ecx, eax
dec ecx
mov dword [0x49fd30], ecx
add eax, 0x92f70936
mov dword [0x4939a4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x100]
add esp, 0x104
pop esi
pop edi
pop ebx
ret