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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x5cc
mov eax, 0x89bbdc09
mov ecx, dword [0x4973f8]
and ecx, 0xe53eb076
mov dword [0x4973f8], ecx
lea ecx, [esp + 0x58c]
mov dword [esp + 0x10c], eax
call fcn.00449b50
mov dx, word [0x49a52e]
mov cx, dx
dec ecx
mov si, cx
mov word [0x49a52e], si
movsx ecx, dx
imul ecx, ecx, 0x63f85092
or ecx, 0xa77c75fd
mov edi, dword [esp + 0x10c]
cmp edi, ecx
mov dword [esp + 0x108], eax
jne 0x40a752
mov eax, 0x11704374
mov ecx, dword [0x495b2c]
mov edx, dword [0x493664]
and edx, 0x1d828e63
xor ecx, edx
cmp eax, ecx
jl 0x40a74d
mov eax, dword [0x492740]
xor eax, 0xb9d4f8a5
mov dword [0x492740], eax
jmp 0x40a752
mov eax, 0xbee73e3d
mov cx, word [0x49b0ec]
mov dx, cx
add edx, 0xc361a203
mov cx, word [0x498044]
mov si, cx
sub esi, edx
mov cx, si
mov word [0x498044], cx
mov edx, dword [0x497700]
or edx, 0xd3e884d1
mov dword [0x497700], edx
mov cx, word [0x49a45e]
mov dx, cx
dec edx
mov di, dx
mov word [0x49a45e], di
movsx edx, cx
imul edx, edx, 0xd133b899
mov esi, dword [0x4904ec]
mov ebx, esi
inc ebx
mov dword [0x4904ec], ebx
and edx, esi
cmp eax, edx
jne 0x40a7da
mov eax, dword [0x4971b0]
and eax, 0x67e38e34
mov dword [0x4971b0], eax
jmp 0x40a7f2
mov ax, word [0x49857a]
mov cx, ax
xor ecx, 0x500f
mov ax, cx
mov word [0x49857a], ax
mov eax, 0xb9ffecbb
mov dword [esp + 0x110], 0
mov ecx, dword [0x4948cc]
mov edx, dword [0x4929b4]
imul ecx, edx
imul ecx, ecx, 0xe237db96
mov dword [0x4929b4], ecx
mov dword [0x49b3c0], 0x94
mov ecx, dword [0x495f68]
add ecx, 0x8a67d600
xor ecx, 0xccedcb17
cmp eax, ecx
jl 0x40a84b
mov dword [0x4901b4], 0xdf4145df
mov eax, dword [0x48fe60]
mov ecx, esp
mov dword [ecx], 0x49b3c0
call eax
sub esp, 4
mov ecx, dword [0x496598]
add ecx, 0xc5f20808
mov dword [0x496598], ecx
mov dword [esp + 0x104], eax
call fcn.004337c0
mov dword [0x49bd80], eax
mov eax, dword [0x494ae8]
mov ecx, dword [0x496c70]
lea eax, [eax + ecx + 0x209e73cb]
mov dword [0x496c70], eax
call fcn.00445a10
mov dword [0x49bd84], eax
mov eax, dword [0x49677c]
add eax, 0x6463ef08
mov ecx, dword [0x491ff8]
sub eax, ecx
mov ecx, dword [0x496814]
or ecx, eax
mov dword [0x496814], ecx
mov eax, dword [0x49bd80]
cmp eax, 0
je 0x40abc4
mov eax, 0xc20a0759
mov ecx, dword [0x491fa0]
dec ecx
mov dword [0x491fa0], ecx
mov dx, word [0x4984fa]
mov si, dx
xor esi, ecx
mov dx, si
mov word [0x4984fa], dx
mov ecx, esp
lea esi, [esp + 0x121]
mov dword [ecx], esi
mov dword [esp + 0x100], eax
call fcn.004271b0
mov dword [esp + 0x11c], eax
mov dx, word [0x4988a0]
mov ax, dx
or eax, 0x299e
mov dx, ax
mov word [0x4988a0], dx
mov eax, dword [esp + 0x11c]
mov byte [esp + eax + 0x121], 0x5c
mov eax, dword [0x49427c]
and eax, 0xfbfbeeef
mov dword [0x49427c], eax
mov eax, dword [esp + 0x11c]
inc eax
mov dword [esp + 0x11c], eax
mov eax, dword [0x490994]
mov ecx, eax
inc ecx
mov dword [0x490994], ecx
mov dx, ax
mov word [0x498f26], dx
mov eax, dword [esp + 0x11c]
mov byte [esp + eax + 0x121], 0
mov eax, dword [0x4953d4]
mov ecx, eax
inc ecx
mov dword [0x4953d4], ecx
imul eax, eax, 0x7e66beb3
or eax, 0xbc3c8095
mov ecx, dword [esp + 0x100]
cmp ecx, eax
je 0x40aa03
mov eax, 0xfffffbf5
mov ecx, dword [0x4955dc]
cmp eax, ecx
jne 0x40a9d9
mov eax, dword [0x4966cc]
mov ecx, dword [0x49366c]
xor eax, ecx
xor eax, 0x301e762
mov dword [0x49366c], eax
jmp 0x40a9fe
mov eax, dword [0x495e14]
dec eax
mov dword [0x495e14], eax
and eax, 0xd6bd4c6c
cmp eax, 0xe7d72dd5
jg 0x40a9f9
jmp 0x40a9f9
jmp 0x40a9fe
jmp 0x40aa30
mov eax, 0x9e10bb58
mov ecx, dword [0x4910e8]
sub ecx, 0x6af0513c
cmp eax, ecx
jl 0x40aa2b
mov eax, dword [0x49471c]
and eax, 0xaf4d69bd
mov dword [0x49471c], eax
jmp 0x40aa30
mov eax, 0x3874c119
mov ecx, dword [0x49bdc0]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x121]
mov dword [edx], ecx
mov dword [esp + 0xfc], eax
mov dword [esp + 0xf8], ecx
call fcn.00455c80
mov si, word [0x497d32]
movsx ecx, si
shl ecx, 3
mov edx, dword [0x497214]
or edx, ecx
mov dword [0x497214], edx
mov ecx, dword [0x48fea8]
mov edx, esp
mov edi, dword [esp + 0xf8]
mov dword [edx], edi
mov dword [edx + 4], 0
mov dword [esp + 0xf4], eax
call ecx
sub esp, 8
mov dword [0x493c4c], 0x59eb0a30
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x1b7
mov dword [esp + 0xf0], eax
call fcn.00448730
mov dword [esp + 0x5c8], eax
mov eax, dword [0x49055c]
sar eax, 1
mov ecx, dword [0x4954a0]
mov edx, ecx
dec edx
mov dword [0x4954a0], edx
add eax, ecx
xor eax, 0x30b83505
mov ecx, dword [esp + 0xfc]
cmp ecx, eax
jl 0x40ab21
mov ax, word [0x499312]
mov cx, ax
xor ecx, 0x8030
or ecx, 0x6dcb
mov ax, word [0x499526]
mov dx, ax
xor edx, ecx
mov ax, dx
mov word [0x499526], ax
jmp 0x40ab31
mov eax, dword [0x493008]
inc eax
mov dword [0x493008], eax
mov dword [0x494e3c], eax
mov eax, 0xfaffc4fd
mov ecx, dword [esp + 0x5c8]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x121]
mov dword [edx], ecx
mov dword [esp + 0xec], eax
call fcn.00455c80
mov ecx, dword [0x4955f4]
or ecx, 0x8eee10ac
mov dword [0x4955f4], ecx
mov ecx, dword [esp + 0x5c8]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xe8], eax
call fcn.0040a610
mov eax, dword [0x4954d0]
imul eax, eax, 0x19cfb725
mov ecx, dword [esp + 0xec]
cmp ecx, eax
je 0x40abbf
mov eax, dword [0x4970fc]
inc eax
mov dword [0x4970fc], eax
and eax, 0x43f840f1
mov ecx, dword [0x4902b0]
sub ecx, eax
mov dword [0x4902b0], ecx
jmp 0x40ac3e
mov eax, dword [0x49743c]
xor eax, 0x8cdff2eb
mov dword [0x49743c], eax
mov byte [esp + 0x121], 0
mov eax, dword [0x491d2c]
mov ecx, eax
dec ecx
mov dword [0x491d2c], ecx
cmp eax, 0xa47439c8
jne 0x40ac2a
mov eax, 0x5e66b410
mov ecx, dword [0x4911d8]
mov dx, word [0x49adb8]
movsx esi, dx
xor esi, 0xffffffff
sub eax, esi
cmp ecx, eax
jne 0x40ac25
mov eax, dword [0x497540]
or eax, 0xf5d553c4
mov dword [0x497540], eax
jmp 0x40ac39
mov eax, dword [0x4924d4]
add eax, 0xedfe6bff
mov dword [0x4924d4], eax
jmp 0x40ac3e
mov eax, 0x30b42a8a
mov cx, word [0x497fba]
mov dx, cx
imul edx, edx, 0xea4cc170
mov cx, dx
mov word [0x497fba], cx
mov edx, esp
mov dword [edx + 4], 0x1f
mov dword [edx], 0x1c2f
mov dword [esp + 0xe4], eax
call fcn.00448730
mov dword [esp + 0x5c4], eax
mov eax, dword [0x491a5c]
mov edx, eax
dec edx
mov dword [0x491a5c], edx
mov edx, 0xc72baf5a
sub edx, eax
and edx, 0x3fe6f229
mov eax, dword [0x491dfc]
sub eax, edx
mov dword [0x491dfc], eax
mov eax, dword [esp + 0x5c4]
mov edx, esp
mov dword [edx], eax
lea ecx, [esp + 0x58c]
call fcn.004320a0
sub esp, 4
mov ecx, dword [0x496738]
and ecx, 0x30cd
mov si, word [0x497c24]
mov dx, si
sub edx, ecx
mov si, dx
mov word [0x497c24], si
mov ecx, dword [esp + 0x5c4]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xe0], eax
call fcn.0040a610
mov eax, dword [0x494f08]
imul eax, eax, 0xf81459e3
mov ecx, dword [esp + 0xe4]
cmp ecx, eax
jne 0x40ad35
mov eax, dword [0x496564]
mov cx, word [0x49846a]
mov dx, cx
add edx, eax
mov cx, dx
mov word [0x49846a], cx
lea eax, [esp + 0x58c]
lea ecx, [esp + 0x121]
mov dword [esp + 0xdc], ecx
mov ecx, eax
call fcn.00441cb0
lea ecx, [esp + 0x58c]
mov dword [esp + 0xd8], eax
call fcn.0044a7d0
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0xd4], ecx
call fcn.004339c0
cmp eax, 0
je 0x40aea5
mov eax, 0xb7696a39
mov ecx, dword [0x495f58]
add ecx, 0xa4446bcd
mov dword [0x495f58], ecx
mov dword [esp + 0x110], 1
mov ecx, dword [0x492dc0]
add ecx, 0x51c4a485
mov dword [0x492dc0], ecx
mov ecx, dword [0x48fe34]
mov edx, esp
lea esi, [esp + 0x121]
mov dword [edx], esi
mov dword [esp + 0xd0], eax
call ecx
sub esp, 4
mov ecx, dword [0x490c04]
or ecx, 0x774d3919
mov dword [0x490c04], ecx
mov ecx, dword [esp + 0x11c]
mov byte [esp + ecx + 0x121], 0
mov di, word [0x497c72]
mov cx, di
dec ecx
mov di, cx
mov word [0x497c72], di
movsx ecx, di
imul ecx, ecx, 0x4cf12d40
mov edx, dword [esp + 0xd0]
cmp edx, ecx
mov dword [esp + 0xcc], eax
je 0x40ae5d
mov eax, dword [0x4952c0]
xor eax, 0x32055c07
mov ecx, dword [0x496444]
and ecx, eax
mov dword [0x496444], ecx
mov eax, dword [0x48feac]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
call eax
sub esp, 4
mov si, word [0x497f94]
mov cx, si
inc ecx
mov di, cx
mov word [0x497f94], di
movsx ecx, si
add ecx, 0x3a49dfba
mov edx, dword [0x496e64]
and edx, ecx
mov dword [0x496e64], edx
mov dword [esp + 0xc8], eax
mov dword [0x493b34], 0x66499754
mov eax, esp
lea ecx, [esp + 0x121]
mov dword [eax], ecx
mov dword [esp + 0xc4], ecx
call fcn.004271b0
mov dx, word [0x49a9ce]
movsx ecx, dx
mov esi, dword [0x4939d4]
and ecx, esi
and ecx, 0x5948b009
mov dword [0x4939d4], ecx
mov byte [esp + 0x124], 0
mov ecx, dword [0x493fe0]
add ecx, 0xa3ad5f8b
mov dword [0x493fe0], ecx
mov ecx, dword [0x49bdc0]
mov esi, esp
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0xc4]
mov dword [esi], ecx
mov dword [esp + 0xc0], eax
call fcn.00455c80
mov ecx, dword [0x4960a0]
add ecx, 0x12a57818
mov dword [0x4960a0], ecx
mov ecx, dword [0x48fea8]
mov esi, esp
mov edi, dword [esp + 0xc4]
mov dword [esi], edi
mov dword [esi + 4], 0
mov dword [esp + 0xbc], eax
call ecx
sub esp, 8
mov ecx, dword [0x491248]
or ecx, 0x49d2e6e7
mov dword [0x491248], ecx
mov ecx, esp
mov esi, dword [esp + 0xc4]
mov dword [ecx + 4], esi
mov dword [ecx], 0x49b5e8
mov dword [esp + 0xb8], eax
call fcn.00455c70
mov ecx, dword [0x493d04]
mov esi, dword [0x49738c]
add esi, ecx
mov dword [0x49738c], esi
cmp dword [esp + 0x110], 0
mov dword [esp + 0xb4], eax
jne 0x40b01d
mov eax, dword [0x4959e4]
mov ecx, eax
dec ecx
mov dword [0x4959e4], ecx
add eax, 0x617b1b8f
mov ecx, dword [0x49459c]
sar ecx, 5
cmp eax, ecx
jl 0x40afdb
mov dword [0x493658], 0x79a2a218
mov dword [0x49bd7c], 0
mov eax, dword [0x49510c]
cmp eax, 0xf81ce7bd
jle 0x40b009
mov eax, dword [0x4964d8]
add eax, 0x6d061b36
mov dword [0x4964d8], eax
jmp 0x40b018
mov eax, dword [0x496994]
or eax, 0x2ebc710c
mov dword [0x496994], eax
jmp 0x40b01d
mov eax, 0xdfbbb7e
mov cx, word [0x49933a]
mov dx, cx
xor edx, 0xa804
mov cx, dx
mov word [0x49933a], cx
mov edx, esp
lea esi, [esp + 0x121]
mov dword [edx], esi
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], esi
call fcn.0043dba0
mov dword [esp + 0x11c], eax
mov cx, word [0x49895a]
mov ax, cx
add eax, eax
and eax, 0x9fbc
mov cx, word [0x49af88]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x49af88], cx
mov eax, dword [0x48fea8]
mov edx, esp
mov esi, dword [esp + 0xac]
mov dword [edx], esi
mov dword [edx + 4], 0
call eax
sub esp, 8
mov edx, dword [0x495984]
not edx
mov cx, word [0x497a7c]
mov si, cx
inc esi
mov cx, si
mov word [0x497a7c], cx
imul edx, esi
mov cx, word [0x4999e4]
mov si, cx
and edx, esi
and edx, 0x2655
mov cx, dx
mov word [0x4999e4], cx
mov edx, esp
mov dword [edx + 4], 0x1f
mov dword [edx], 0x1b7
mov dword [esp + 0xa8], eax
call fcn.00448730
mov dword [esp + 0x5c0], eax
mov eax, dword [0x4936e8]
mov edx, eax
dec edx
mov dword [0x4936e8], edx
add eax, 0xfcb2f256
mov cx, word [0x4993e4]
mov dx, cx
sub edx, eax
mov cx, dx
mov word [0x4993e4], cx
mov eax, dword [esp + 0x5c0]
mov edx, esp
mov dword [edx + 4], eax
mov eax, dword [esp + 0xac]
mov dword [edx], eax
call fcn.00455c80
mov dword [0x490204], 0x4cb3784f
mov edx, esp
mov dword [edx + 4], 0x1f
mov dword [edx], 0x1c2f
mov dword [esp + 0xa4], eax
call fcn.00448730
mov dword [esp + 0x5bc], eax
mov eax, dword [0x491108]
imul eax, eax, 0x83992c6b
mov dword [0x491108], eax
mov eax, dword [esp + 0x5c0]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx], 0x1f
call fcn.0040a610
mov dword [0x493b80], 0xa1b4a87f
mov eax, dword [esp + 0x5bc]
mov edx, esp
mov dword [edx], eax
lea ecx, [esp + 0x58c]
call fcn.004320a0
sub esp, 4
mov di, word [0x4999d8]
movsx ecx, di
sar ecx, 0xa
mov edx, dword [0x490798]
imul edx, ecx
mov dword [0x490798], edx
mov ecx, dword [esp + 0x5bc]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xa0], eax
call fcn.0040a610
mov di, word [0x4980f0]
movsx eax, di
sar eax, 0xa
sub eax, 0xf4c89c92
mov ecx, dword [esp + 0xb0]
cmp ecx, eax
jle 0x40b247
mov ax, word [0x497e2a]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x497e2a], dx
movsx ecx, ax
xor ecx, 0xa862d678
mov esi, dword [0x49159c]
and esi, ecx
mov dword [0x49159c], esi
jmp 0x40b256
mov eax, dword [0x490900]
add eax, 0xcfbfff3
mov dword [0x490900], eax
lea eax, [esp + 0x58c]
lea ecx, [esp + 0x121]
mov dword [esp + 0x9c], ecx
mov ecx, eax
call fcn.00441cb0
lea ecx, [esp + 0x58c]
mov dword [esp + 0x98], eax
call fcn.0044a7d0
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x94], ecx
call fcn.004339c0
cmp eax, 0
jne 0x40bfb1
mov ax, word [0x498df6]
mov cx, ax
xor ecx, 0xf2e
mov ax, word [0x49b044]
mov dx, ax
or edx, ecx
mov ax, dx
mov word [0x49b044], ax
cmp dword [0x49b3c4], 6
jb 0x40b3aa
mov eax, dword [0x4965d4]
or eax, 0x8e852165
mov dword [0x4965d4], eax
mov eax, esp
mov dword [eax + 4], 0x12
mov dword [eax], 0x77d
call fcn.00448730
mov dword [esp + 0x5b8], eax
mov eax, dword [0x496bdc]
mov ecx, eax
dec ecx
mov dword [0x496bdc], ecx
add eax, 0x9bb2a2aa
mov dword [0x490740], eax
mov eax, dword [esp + 0x5b8]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
mov dword [ecx + 8], 0x49b454
call fcn.00455f92
mov ecx, dword [0x4928cc]
add ecx, 0xb22b64d7
mov dword [0x4928cc], ecx
mov ecx, dword [esp + 0x5b8]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x12
mov dword [esp + 0x90], eax
call fcn.0040a610
mov eax, dword [0x494e04]
shr eax, 1
or eax, 0x5e72
mov si, word [0x49a39a]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x49a39a], si
jmp 0x40b488
mov ax, word [0x49a182]
movsx ecx, ax
shl ecx, 7
mov edx, dword [0x494c88]
sub edx, ecx
mov dword [0x494c88], edx
mov ecx, esp
mov dword [ecx + 4], 0x24
mov dword [ecx], 0x2acf
call fcn.00448730
mov dword [esp + 0x5b4], eax
mov eax, dword [0x4950d8]
mov si, word [0x49adde]
mov cx, si
xor eax, ecx
not eax
mov si, ax
mov word [0x49adde], si
mov eax, dword [esp + 0x5b4]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
mov dword [ecx + 8], 0x49b454
call fcn.00455f92
mov ecx, dword [0x4962c4]
lea ecx, [ecx*8 - 0x6e3cad5b]
or ecx, 0x6e81
mov si, word [0x497f6c]
mov dx, si
imul edx, ecx
mov si, dx
mov word [0x497f6c], si
mov ecx, dword [esp + 0x5b4]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x24
mov dword [esp + 0x8c], eax
call fcn.0040a610
mov eax, dword [0x494878]
shr eax, 8
xor eax, 0xf73f
mov si, word [0x49ace4]
mov cx, si
sub ecx, eax
mov si, cx
mov word [0x49ace4], si
mov eax, dword [0x491d80]
imul eax, eax, 0x9fbef6f9
mov dword [0x491d80], eax
mov byte [esp + 0x58b], 0
mov eax, dword [0x49379c]
imul eax, eax, 0xf6c285c0
add eax, 0x20939750
cmp eax, 0x8ae47acf
jge 0x40b4cf
mov eax, dword [0x496fe0]
xor eax, 0x5eca9225
mov dword [0x496fe0], eax
jmp 0x40b4ef
mov eax, dword [0x490ea0]
or eax, 0x118b
mov cx, word [0x49ad10]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x49ad10], cx
mov eax, dword [0x49bdc0]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
call fcn.00455c80
mov ecx, dword [0x490890]
add ecx, 0xa8c9b0bd
mov edx, dword [0x490984]
dec edx
mov dword [0x490984], edx
xor edx, 0xde17950e
cmp ecx, edx
mov dword [esp + 0x88], eax
je 0x40b55d
mov eax, dword [0x490f38]
shl eax, 8
mov ecx, dword [0x4919c8]
lea eax, [eax + ecx + 0x7cf07f9]
mov ecx, dword [0x493b90]
and ecx, eax
mov dword [0x493b90], ecx
jmp 0x40b570
mov eax, dword [0x4933e8]
mov ecx, dword [0x495e10]
and ecx, eax
mov dword [0x495e10], ecx
mov eax, dword [0x48fea8]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov dword [esp + 0x84], edx
call eax
sub esp, 8
mov si, word [0x4993b6]
mov cx, si
xor ecx, 0x6d7d
mov si, word [0x499770]
mov dx, si
add edx, ecx
mov si, dx
mov word [0x499770], si
mov ecx, esp
mov edx, dword [esp + 0x84]
mov dword [ecx + 4], edx
mov dword [ecx], 0x49b5e8
mov dword [esp + 0x80], eax
call fcn.00455c70
mov ecx, dword [0x496280]
mov edx, ecx
dec edx
mov dword [0x496280], edx
and ecx, 0xfee6c243
cmp ecx, 0x6066dafb
mov dword [esp + 0x7c], eax
jle 0x40b64b
mov eax, 0xdaf7dbbe
mov ecx, dword [0x495350]
shl ecx, 0xa
cmp eax, ecx
jle 0x40b646
mov eax, 0xb33313cf
mov cx, word [0x499348]
mov dx, cx
inc edx
mov cx, dx
mov word [0x499348], cx
movsx edx, cx
sub eax, edx
cmp eax, 0x26f6f5ef
jg 0x40b641
jmp 0x40b641
jmp 0x40b646
jmp 0x40b64b
mov eax, 0xbdcd1f97
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [esp + 0x78], eax
call fcn.0043dba0
mov dword [esp + 0x11c], eax
mov eax, dword [0x492288]
and eax, 0xd19d59b7
or eax, 0xe50cff20
mov ecx, dword [esp + 0x78]
cmp ecx, eax
jge 0x40b695
mov eax, dword [0x4973ec]
add eax, 0x5024f6e
mov dword [0x4973ec], eax
mov eax, dword [0x48fea8]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x496e38]
add ecx, 0xf9c3c898
mov dword [0x496e38], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x1b7
mov dword [esp + 0x74], eax
call fcn.00448730
mov dword [esp + 0x5b0], eax
mov eax, dword [0x49278c]
xor eax, 0x6b56f7c5
cmp eax, 0x7ee7dfcf
je 0x40b722
mov eax, dword [0x491c48]
mov ecx, eax
inc ecx
mov dword [0x491c48], ecx
add eax, 0x7cd23e95
or eax, 0x4066a8a5
mov ecx, dword [0x4952a8]
xor ecx, eax
mov dword [0x4952a8], ecx
jmp 0x40b77b
mov eax, 0x8b929e69
mov cx, word [0x498d32]
mov dx, cx
inc edx
mov cx, dx
mov word [0x498d32], cx
movsx edx, cx
and edx, 0x15ef2240
xor edx, 0x6d2bb94b
cmp eax, edx
jl 0x40b767
mov eax, dword [0x492994]
add eax, 0xb27abf87
mov dword [0x492994], eax
jmp 0x40b776
mov eax, dword [0x4906e4]
add eax, 0x67f7ffbf
mov dword [0x4906e4], eax
jmp 0x40b77b
mov eax, 0x5a7597d9
mov ecx, dword [esp + 0x5b0]
mov edx, esp
mov dword [edx + 4], ecx
lea ecx, [esp + 0x121]
mov dword [edx], ecx
mov dword [esp + 0x70], eax
call fcn.00455c80
mov ecx, dword [0x494c0c]
mov si, word [0x49ae70]
mov dx, si
xor ecx, edx
not ecx
mov si, cx
mov word [0x49ae70], si
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x1c2f
mov dword [esp + 0x6c], eax
call fcn.00448730
mov dword [esp + 0x5ac], eax
mov eax, dword [0x494b08]
xor eax, 0xffffffff
xor eax, 0xd427811e
mov ecx, dword [esp + 0x70]
cmp ecx, eax
jne 0x40b804
mov eax, dword [0x495f3c]
imul eax, eax, 0x50c0a234
mov dword [0x495f3c], eax
mov eax, 0xd9f7ddf9
mov ecx, dword [esp + 0x5b0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x68], eax
call fcn.0040a610
mov si, word [0x4978d8]
movsx eax, si
mov ecx, dword [esp + 0x68]
cmp ecx, eax
jg 0x40b85c
mov eax, dword [0x490e98]
add eax, eax
mov cx, word [0x49786c]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x49786c], cx
jmp 0x40b874
mov ax, word [0x498d58]
mov cx, ax
add ecx, 0x5a437400
mov ax, cx
mov word [0x498d58], ax
mov eax, dword [esp + 0x5ac]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x58c]
call fcn.004320a0
sub esp, 4
mov ecx, dword [0x496b98]
or ecx, 0xc38eec76
mov dword [0x496b98], ecx
mov ecx, dword [esp + 0x5ac]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x64], eax
call fcn.0040a610
mov eax, dword [0x496924]
mov ecx, dword [0x491754]
inc ecx
mov dword [0x491754], ecx
add ecx, 0x7e66d037
cmp eax, ecx
jl 0x40b8ef
mov eax, dword [0x491c38]
add eax, 0x42410201
mov dword [0x491c38], eax
jmp 0x40b8ff
mov eax, dword [0x491088]
imul eax, eax, 0x36b971f6
mov dword [0x491088], eax
lea eax, [esp + 0x58c]
lea ecx, [esp + 0x121]
mov dword [esp + 0x60], ecx
mov ecx, eax
call fcn.00441cb0
lea ecx, [esp + 0x58c]
mov dword [esp + 0x5c], eax
call fcn.0044a7d0
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x58], ecx
call fcn.004339c0
cmp eax, 0
jne 0x40bfa2
mov dword [0x492fa8], 0x89480111
mov eax, dword [0x48fe50]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x54], edx
call eax
sub esp, 8
mov word [0x49a81e], 0xd01e
mov ecx, esp
mov edx, dword [esp + 0x54]
mov dword [ecx], edx
mov dword [esp + 0x50], eax
call fcn.00452bb0
mov dword [esp + 0x11c], eax
mov eax, dword [0x494c78]
shl eax, 5
cmp eax, 0xf7d3fff9
jle 0x40b9c7
mov eax, dword [0x493b58]
or eax, 0x2fe345a3
mov dword [0x493b58], eax
mov eax, dword [esp + 0x11c]
add eax, 0xfffffffe
mov dword [esp + 0x11c], eax
mov eax, dword [0x495f74]
mov cx, word [0x49b206]
mov dx, cx
and eax, edx
and eax, 0xc06
mov cx, ax
mov word [0x49b206], cx
mov eax, dword [esp + 0x11c]
mov dword [esp + 0x118], eax
cmp dword [esp + 0x118], 0
jle 0x40bb39
mov eax, dword [0x497104]
add eax, 0xffcffbbc
mov dword [0x497104], eax
mov eax, dword [esp + 0x118]
movsx eax, byte [esp + eax + 0x121]
cmp eax, 0x5c
jne 0x40baf1
mov eax, 0x74d33f83
mov ecx, dword [0x493110]
inc ecx
mov dword [0x493110], ecx
imul ecx, ecx, 0x263b082
cmp eax, ecx
jle 0x40ba6a
mov eax, dword [0x4903b8]
add eax, 0xa2139597
mov dword [0x4903b8], eax
mov eax, 0x2a68eb32
mov ecx, dword [esp + 0x118]
inc ecx
mov dword [esp + 0x118], ecx
mov dx, word [0x497ea8]
movsx ecx, dx
add ecx, 0x831c65f1
cmp eax, ecx
jl 0x40baae
mov ax, word [0x49af5e]
mov cx, ax
add ecx, 0x3ab44f2d
mov ax, cx
mov word [0x49af5e], ax
mov eax, dword [esp + 0x118]
mov byte [esp + eax + 0x121], 0
mov word [0x4996de], 0x4924
mov eax, dword [esp + 0x118]
mov dword [esp + 0x11c], eax
mov eax, dword [0x492ff4]
or eax, 0x518b5dbd
mov ecx, dword [0x492800]
sub ecx, eax
mov dword [0x492800], ecx
jmp 0x40bb39
mov eax, dword [0x490f98]
mov ecx, eax
inc ecx
mov dword [0x490f98], ecx
add eax, 0x9da8f6b0
cmp eax, 0xefc49152
jne 0x40bb1e
mov eax, dword [0x4928c8]
xor eax, 0xac3703c9
mov dword [0x4928c8], eax
jmp 0x40bb23
mov eax, dword [esp + 0x118]
add eax, 0xffffffff
mov dword [esp + 0x118], eax
jmp 0x40ba06
mov eax, dword [0x490860]
mov ecx, 0x20ea743e
sub ecx, eax
or ecx, 0x38c2089
mov dword [0x490a20], ecx
mov eax, esp
lea ecx, [esp + 0x121]
mov dword [eax + 4], ecx
mov dword [eax], 0x49b5e8
call fcn.00455c70
mov ecx, dword [0x491fd8]
mov edx, ecx
inc edx
mov dword [0x491fd8], edx
add ecx, 0x9628d2f0
cmp ecx, 0xed2e6fbf
mov dword [esp + 0x4c], eax
jl 0x40bbbd
mov ax, word [0x49b05a]
mov cx, ax
inc ecx
mov ax, cx
mov word [0x49b05a], ax
movsx ecx, ax
imul ecx, ecx, 0x648876a8
add ecx, 0x195bf028
mov edx, dword [0x494980]
and edx, ecx
mov dword [0x494980], edx
mov eax, 0x37ab4ca2
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [esp + 0x48], eax
call fcn.0043dba0
mov dword [esp + 0x11c], eax
mov eax, dword [0x490690]
xor eax, 0xffffffff
xor eax, 0xd47a782c
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jl 0x40bc05
mov eax, dword [0x492fa0]
xor eax, 0x37d40787
mov dword [0x492fa0], eax
mov eax, dword [0x48fea8]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x496234]
inc ecx
mov dword [0x496234], ecx
mov edx, dword [0x493894]
mov esi, dword [0x492354]
add esi, 0xf7de09b7
xor edx, esi
cmp ecx, edx
mov dword [esp + 0x44], eax
jg 0x40bc5d
mov eax, dword [0x493c78]
xor eax, 0x84e00860
mov dword [0x493c78], eax
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x1b7
call fcn.00448730
mov dword [esp + 0x5a8], eax
mov eax, dword [0x496f9c]
and eax, 0x49f73f1b
mov dword [0x496f9c], eax
mov eax, dword [esp + 0x5a8]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x121]
mov dword [ecx], eax
call fcn.00455c80
mov ecx, dword [0x4939a8]
and ecx, 0x73f02bfd
mov dword [0x4939a8], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x1c2f
mov dword [esp + 0x40], eax
call fcn.00448730
mov dword [esp + 0x5a4], eax
mov eax, dword [0x490400]
xor eax, 0x3b4f8737
mov dword [0x490400], eax
mov eax, dword [esp + 0x5a8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.0040a610
mov eax, dword [0x4927d8]
mov ecx, dword [0x49156c]
sar ecx, 6
and eax, ecx
mov ecx, dword [0x497244]
sar ecx, 4
imul ecx, ecx, 0xa3192953
add ecx, 0xf4631d1
cmp eax, ecx
jl 0x40bd57
mov eax, 0x251d74ad
mov ecx, dword [0x4912f0]
mov edx, ecx
dec edx
mov dword [0x4912f0], edx
mov edx, dword [0x491a68]
add ecx, edx
cmp eax, ecx
jg 0x40bd52
mov word [0x4991da], 0xace3
jmp 0x40bd57
lea eax, [esp + 0x58c]
lea ecx, [esp + 0x121]
mov edx, dword [esp + 0x5a4]
mov esi, esp
mov dword [esi], edx
lea edx, [esp + 0x58c]
mov dword [esp + 0x3c], ecx
mov ecx, edx
mov dword [esp + 0x38], eax
call fcn.004320a0
sub esp, 4
mov ecx, dword [0x495b54]
or ecx, 0xa2523868
mov dword [0x495b54], ecx
mov ecx, dword [esp + 0x5a4]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x34], eax
call fcn.0040a610
mov eax, dword [0x495a98]
imul eax, eax, 0xb437051a
mov dword [0x495a98], eax
mov eax, dword [esp + 0x38]
mov ecx, eax
call fcn.00441cb0
lea ecx, [esp + 0x58c]
mov dword [esp + 0x30], eax
call fcn.0044a7d0
mov ecx, 0x9a47605
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x9a47605
mov dword [esp + 0x2c], ecx
call fcn.004339c0
cmp eax, 0
jne 0x40bf35
mov eax, dword [0x496220]
and eax, 0xb1e8b0ce
mov dword [0x496220], eax
mov eax, dword [0x48fe50]
mov ecx, esp
lea edx, [esp + 0x121]
mov dword [ecx + 4], edx
mov dword [ecx], 0x104
mov dword [esp + 0x28], edx
call eax
sub esp, 8
mov ecx, dword [0x4900a8]
shr ecx, 2
imul ecx, ecx, 0x9e6e003f
add ecx, 0x6f21962c
mov si, cx
mov word [0x499fd4], si
mov ecx, esp
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], edx
mov dword [ecx], 0x49b5e8
mov dword [esp + 0x24], eax
call fcn.00455c70
mov ecx, dword [0x49257c]
imul ecx, ecx, 0xc4b3494a
mov edx, dword [0x493470]
and edx, ecx
mov dword [0x493470], edx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x1b7
mov dword [esp + 0x20], eax
call fcn.00448730
mov dword [esp + 0x5a0], eax
mov si, word [0x498a8e]
mov ax, si
dec eax
mov di, ax
mov word [0x498a8e], di
movsx eax, si
mov ecx, dword [0x492d48]
and ecx, eax
mov dword [0x492d48], ecx
mov eax, dword [esp + 0x5a0]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
call fcn.00455c80
mov ecx, dword [0x495590]
xor ecx, 0xd6ca8c5b
mov dword [0x495590], ecx
mov ecx, dword [esp + 0x5a0]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x1c], eax
call fcn.0040a610
mov si, word [0x498c7c]
mov ax, si
xor eax, 0xb465
mov si, ax
mov word [0x498c7c], si
mov eax, dword [0x494244]
imul eax, eax, 0x62a21236
add eax, 0x20f1c8ab
mov ecx, dword [0x492738]
inc ecx
mov dword [0x492738], ecx
xor ecx, 0xc000d291
cmp eax, ecx
jle 0x40bf9d
mov eax, 0x9c21a5a4
mov cx, word [0x498120]
movsx edx, cx
xor edx, 0xffffffff
sub eax, edx
or eax, 0xdab971fd
cmp eax, 0x133a6efd
jne 0x40bf98
mov eax, dword [0x4922cc]
mov ecx, dword [0x494f00]
xor eax, ecx
not eax
mov dword [0x494f00], eax
jmp 0x40bf9d
jmp 0x40bfa2
mov eax, dword [0x4954e0]
and eax, 0xdfb7ddf7
mov dword [0x4954e0], eax
mov eax, dword [0x495a98]
add eax, 0xb774c4f1
mov dword [0x495a98], eax
mov eax, esp
lea ecx, [esp + 0x121]
mov dword [eax], ecx
mov dword [esp + 0x18], ecx
call fcn.0043dba0
mov dx, word [0x49b230]
mov cx, dx
or ecx, 0xd7fe
mov dx, cx
mov word [0x49b230], dx
mov ecx, dword [0x48fe5c]
mov esi, esp
mov edi, dword [esp + 0x18]
mov dword [esi], edi
mov dword [esi + 4], 2
mov dword [esp + 0x14], eax
call ecx
sub esp, 8
mov dx, word [0x497a94]
mov cx, dx
xor ecx, 0xf5dc
mov dx, cx
mov word [0x497a94], dx
mov ecx, esp
mov esi, dword [esp + 0x18]
mov dword [ecx], esi
mov dword [ecx + 4], 0x46b
mov dword [esp + 0x10], eax
call fcn.0042f280
mov dword [0x491d00], 0x48be83fe
lea ecx, [esp + 0x58c]
call fcn.00428b20
add esp, 0x5cc
pop esi
pop edi
pop ebx
ret