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

Disassembly:
push ebx
push edi
push esi
sub esp, 0x580
mov eax, 0x40220
mov ecx, dword [0x48cf08]
xor ecx, 0x49692a9b
mov dword [0x48cf08], ecx
lea ecx, [esp + 0x540]
mov dword [esp + 0x128], eax
call fcn.00444120
mov ecx, dword [0x485940]
or ecx, 0x2681329a
mov dword [0x485940], ecx
mov ecx, dword [0x48a63c]
and ecx, 0x5dbdc9ff
mov dword [0x48a63c], ecx
mov ecx, dword [0x486248]
xor ecx, 0xa8ab77f1
mov dword [0x486248], ecx
mov ecx, dword [0x48bff4]
add ecx, 0x585c5fb1
mov dword [0x48bff4], ecx
mov dword [esp + 0x12c], 0
mov ecx, dword [0x4869f4]
mov edx, dword [0x489798]
shl edx, 8
mov esi, 0xe6aca5da
sub esi, edx
xor ecx, esi
mov di, word [0x4936e6]
mov dx, di
imul edx, ecx
mov di, dx
mov word [0x4936e6], di
mov dword [0x4940b8], 0x94
mov ecx, dword [0x4845e8]
dec ecx
mov dword [0x4845e8], ecx
or ecx, 0xd5e64b37
mov edx, dword [esp + 0x128]
cmp edx, ecx
mov dword [esp + 0x124], eax
jge 0x40f7c4
mov eax, 0x11bfbfff
mov cx, word [0x4935c6]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4935c6], cx
movsx edx, cx
sub edx, 0x6f8fbb92
cmp eax, edx
je 0x40f7a7
mov eax, dword [0x4882ac]
and eax, 0x1b604971
mov dword [0x4882ac], eax
jmp 0x40f7bf
mov ax, word [0x492e00]
mov cx, ax
or ecx, 0x47f1
mov ax, cx
mov word [0x492e00], ax
jmp 0x40f7c4
mov eax, dword [0x4815c0]
mov ecx, esp
mov dword [ecx], 0x4940b8
call eax
sub esp, 4
mov ecx, dword [0x4882f4]
or ecx, 0xff7fcbfb
mov dword [0x4882f4], ecx
mov dword [esp + 0x120], eax
call fcn.00410ef0
mov dword [0x4948cc], eax
mov dx, word [0x48eb70]
mov ax, dx
add eax, 0xab8c6c56
mov dx, ax
mov word [0x48eb70], dx
call fcn.00421a70
mov dword [0x4948d0], eax
mov eax, dword [0x489de4]
mov ecx, eax
inc ecx
mov dword [0x489de4], ecx
add eax, 0xc336eca6
xor eax, 0xc96f75fa
mov ecx, dword [0x48a440]
imul ecx, eax
mov dword [0x48a440], ecx
mov eax, dword [0x4948cc]
cmp eax, 0
je 0x40fa48
mov eax, 0x5a68fa58
mov ecx, dword [0x488f5c]
add ecx, 0x3824826a
mov dword [0x488f5c], ecx
mov ecx, esp
lea edx, [esp + 0x13f]
mov dword [ecx], edx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x118], edx
call fcn.0040eb20
mov dword [esp + 0x138], eax
mov eax, dword [0x48d698]
inc eax
mov dword [0x48d698], eax
and eax, 0x8766
mov si, word [0x48ea9a]
mov cx, si
or ecx, eax
mov si, cx
mov word [0x48ea9a], si
mov eax, dword [esp + 0x138]
mov byte [esp + eax + 0x13f], 0x5c
mov eax, dword [0x488868]
add eax, 0xf6ffffff
mov dword [0x488868], eax
mov eax, dword [esp + 0x138]
inc eax
mov dword [esp + 0x138], eax
mov si, word [0x48e682]
mov ax, si
add eax, 0xe0191fb0
mov si, ax
mov word [0x48e682], si
mov eax, dword [esp + 0x138]
mov byte [esp + eax + 0x13f], 0
mov eax, dword [0x4854c0]
inc eax
mov dword [0x4854c0], eax
xor eax, 0xd245
mov si, ax
mov word [0x493488], si
mov eax, dword [0x494910]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x118]
mov dword [ecx], eax
call fcn.00456160
mov ecx, dword [0x482da8]
add ecx, 0xaf272064
and ecx, 0x7722caa0
mov edx, dword [esp + 0x11c]
cmp edx, ecx
mov dword [esp + 0x114], eax
jl 0x40f971
mov eax, dword [0x48955c]
add eax, 0x3319ac9a
mov dword [0x48955c], eax
mov eax, dword [0x481608]
mov ecx, esp
lea edx, [esp + 0x13f]
mov dword [ecx], edx
mov dword [ecx + 4], 0
mov dword [esp + 0x110], edx
call eax
sub esp, 8
mov ecx, dword [0x485990]
add ecx, 0xbbfcb9d3
mov dword [0x485990], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2af
mov dword [esp + 0x10c], eax
call fcn.0044b9d0
mov dword [esp + 0x57c], eax
mov eax, dword [0x48361c]
imul eax, eax, 0xac234774
mov dword [0x48361c], eax
mov eax, dword [esp + 0x57c]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x110]
mov dword [ecx], eax
call fcn.00456160
mov si, word [0x493b58]
mov cx, si
add ecx, 0xfbdda719
mov si, cx
mov word [0x492ebe], si
mov ecx, dword [esp + 0x57c]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x108], eax
call fcn.0041e2a0
mov si, word [0x492174]
mov ax, si
or eax, 0x34f0
mov si, ax
mov word [0x492174], si
jmp 0x40fa9d
mov ax, word [0x48e438]
mov cx, ax
xor ecx, 0x60f5
mov ax, cx
mov word [0x48e438], ax
mov byte [esp + 0x13f], 0
mov ecx, dword [0x484c44]
add ecx, 0xc2ddf336
cmp ecx, 0xddffbdbf
je 0x40fa98
mov ax, word [0x492c48]
mov cx, ax
and ecx, 0xeeb5
mov ax, cx
mov word [0x492c48], ax
jmp 0x40fa9d
lea eax, [esp + 0x540]
lea ecx, [esp + 0x13f]
mov edx, dword [0x489740]
shl edx, 7
xor edx, 0x17a4
mov si, word [0x493b38]
mov di, si
imul edi, edx
mov si, di
mov word [0x493b38], si
mov edx, esp
mov dword [edx + 4], 0x1f
mov dword [edx], 0xfa2
mov dword [esp + 0x104], eax
mov dword [esp + 0x100], ecx
call fcn.0044b9d0
mov dword [esp + 0x578], eax
mov si, word [0x491274]
mov ax, si
dec eax
mov bx, ax
mov word [0x491274], bx
movsx eax, si
mov ecx, dword [0x4875f0]
or eax, ecx
or eax, 0xc2425108
mov dword [0x4875f0], eax
mov eax, dword [esp + 0x578]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x540]
call fcn.00440d90
sub esp, 4
mov ecx, dword [0x48762c]
mov edx, ecx
dec edx
mov dword [0x48762c], edx
mov edx, dword [0x4844c8]
lea ecx, [edx + ecx - 1]
mov dword [0x4844c8], ecx
mov ecx, dword [esp + 0x578]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0xfc], eax
call fcn.0041e2a0
mov si, word [0x48e772]
mov ax, si
mov si, word [0x48f5c4]
mov cx, si
xor eax, ecx
xor eax, 0x9966
mov si, ax
mov word [0x48f5c4], si
mov eax, dword [esp + 0x104]
mov ecx, eax
call fcn.00411270
lea ecx, [esp + 0x540]
mov dword [esp + 0xf8], eax
call fcn.00450900
mov ecx, 0xb650560
mov dword [esp], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xb650560
mov dword [esp + 0xf4], ecx
call fcn.0040d9f0
cmp eax, 0
je 0x40fd6a
mov eax, 0x29b058ad
mov ecx, dword [0x48b478]
xor ecx, 0xe8c37b5c
mov edx, dword [0x48d0b4]
or edx, ecx
mov dword [0x48d0b4], edx
mov dword [esp + 0x12c], 1
mov si, word [0x492c28]
movsx ecx, si
imul ecx, ecx, 0x3fba3f5f
mov edx, 0xd6b3eb89
sub edx, ecx
mov ecx, dword [0x48bd00]
xor ecx, edx
mov dword [0x48bd00], ecx
mov ecx, dword [0x481594]
mov edx, esp
lea edi, [esp + 0x13f]
mov dword [edx], edi
mov dword [esp + 0xf0], eax
call ecx
sub esp, 4
mov word [0x490c20], 0x22
mov ecx, dword [esp + 0x138]
mov byte [esp + ecx + 0x13f], 0
mov ecx, dword [0x481d4c]
mov edx, ecx
inc edx
mov dword [0x481d4c], edx
and ecx, 0x27a6ccd3
mov edx, dword [esp + 0xf0]
cmp edx, ecx
mov dword [esp + 0xec], eax
je 0x40fcc8
mov ax, word [0x4918c0]
mov cx, ax
and ecx, 0xf5c2
mov ax, cx
mov word [0x4918c0], ax
jmp 0x40fcdd
mov ax, word [0x48f270]
movsx ecx, ax
add ecx, 0x8d8bb3f0
mov dword [0x488978], ecx
mov eax, dword [0x48160c]
mov ecx, esp
lea edx, [esp + 0x13f]
mov dword [ecx], edx
call eax
sub esp, 4
mov si, word [0x492d32]
movsx ecx, si
shl ecx, 7
cmp ecx, 0xc6dd9837
mov dword [esp + 0xe8], eax
jg 0x40fd65
mov eax, 0x876dd1a
mov cx, word [0x48ead4]
mov dx, cx
inc edx
mov si, dx
mov word [0x48ead4], si
movsx edx, cx
add edx, 0xee0f5ef3
mov edi, dword [0x48b550]
inc edi
mov dword [0x48b550], edi
sub eax, edi
or eax, 0x26d6a585
cmp edx, eax
jge 0x40fd60
mov eax, dword [0x48d30c]
add eax, 0xbb94739c
mov dword [0x48d30c], eax
jmp 0x40fd65
jmp 0x40fd6a
mov eax, 0x56b97a3c
mov ecx, 0xe43ca8be
mov dword [0x488640], 0x3586bd50
mov edx, esp
lea esi, [esp + 0x13f]
mov dword [edx], esi
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0xdc], esi
call fcn.0040eb20
mov word [0x48de84], 0xe26a
mov byte [esp + 0x142], 0
mov ecx, dword [0x48d164]
xor ecx, 0x775208a8
mov dword [0x48d164], ecx
mov ecx, dword [0x494910]
mov edx, esp
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0xdc]
mov dword [edx], ecx
mov dword [esp + 0xd8], eax
call fcn.00456160
mov ecx, dword [0x483b64]
and ecx, 0xcae70433
mov dword [0x483b64], ecx
mov ecx, dword [0x481608]
mov edx, esp
mov esi, dword [esp + 0xdc]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0xd4], eax
call ecx
sub esp, 8
mov ecx, dword [0x48acb0]
mov edx, dword [0x484df4]
shl edx, 2
mov esi, dword [esp + 0xe0]
sub esi, edx
and ecx, esi
mov edx, dword [esp + 0xe4]
cmp edx, ecx
mov dword [esp + 0xd0], eax
jge 0x40fe6a
mov eax, dword [0x48c3c0]
imul eax, eax, 0xad776c33
xor eax, 0xd65044ad
mov ecx, dword [0x481fa4]
sub ecx, eax
mov dword [0x481fa4], ecx
mov eax, esp
lea ecx, [esp + 0x13f]
mov dword [eax + 4], ecx
mov dword [eax], 0x494274
call fcn.00456150
mov dx, word [0x48e75c]
mov cx, dx
mov esi, ecx
inc esi
mov dx, si
mov word [0x48e75c], dx
mov esi, 0x6d79077a
sub esi, ecx
mov dx, word [0x4906f2]
mov cx, dx
and ecx, esi
mov dx, cx
mov word [0x4906f2], dx
cmp dword [esp + 0x12c], 0
mov dword [esp + 0xcc], eax
jne 0x40ff04
mov word [0x490394], 0x2005
mov dword [0x4948c8], 0
mov eax, dword [0x486fd0]
mov ecx, eax
dec ecx
mov dword [0x486fd0], ecx
and eax, 0x2898533c
xor eax, 0x4db4e079
mov ecx, dword [0x48c368]
imul ecx, eax
mov dword [0x48c368], ecx
mov ax, word [0x492f82]
movsx ecx, ax
imul ecx, ecx, 0xf77cc6d0
xor ecx, 0x11f9c3a7
mov edx, dword [0x48c56c]
mov esi, edx
dec esi
mov dword [0x48c56c], esi
xor edx, 0xff331150
cmp ecx, edx
jle 0x40ff45
mov eax, dword [0x488524]
add eax, 0x105006a2
mov dword [0x488524], eax
mov eax, 0x38fce405
mov ecx, esp
lea edx, [esp + 0x13f]
mov dword [ecx], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xc4], edx
call fcn.004390c0
mov dword [esp + 0x138], eax
mov eax, dword [0x482058]
imul eax, eax, 0xee6dac0c
add eax, 0x58eeee90
mov dword [0x48d8f0], eax
mov eax, dword [0x481608]
mov ecx, esp
mov edx, dword [esp + 0xc4]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov si, word [0x490452]
movsx ecx, si
xor ecx, 0xeb1aa170
mov edx, dword [esp + 0xc8]
cmp edx, ecx
mov dword [esp + 0xc0], eax
jg 0x40ffde
mov ax, word [0x49014e]
mov cx, ax
add ecx, 0x86315aa
mov ax, cx
mov word [0x49014e], ax
mov eax, esp
mov dword [eax + 4], 0x1f
mov dword [eax], 0x2af
call fcn.0044b9d0
mov dword [esp + 0x574], eax
mov eax, dword [0x48d9b4]
add eax, 0x4a0e1b95
mov ecx, dword [0x481c54]
or ecx, eax
mov dword [0x481c54], ecx
mov eax, dword [esp + 0x574]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x13f]
mov dword [ecx], eax
call fcn.00456160
mov ecx, dword [0x486d30]
shl ecx, 8
mov edx, dword [0x484ab4]
mov esi, edx
dec esi
mov dword [0x484ab4], esi
and ecx, edx
cmp ecx, 0xa8f1c9e4
mov dword [esp + 0xbc], eax
jne 0x4100ac
mov eax, dword [0x488f10]
dec eax
mov dword [0x488f10], eax
or eax, 0xf3eaee9
mov ecx, dword [0x48af0c]
cmp eax, ecx
jg 0x41008a
mov eax, dword [0x483214]
and eax, 0x7ccf37c7
mov dword [0x485954], eax
jmp 0x4100a7
mov ax, word [0x493b38]
mov cx, ax
mov ax, word [0x490366]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x490366], ax
jmp 0x4100ac
mov eax, 0x2f9cd27d
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0xfa2
mov dword [esp + 0xb8], eax
call fcn.0044b9d0
mov dword [esp + 0x570], eax
mov eax, dword [0x487514]
shr eax, 6
add eax, 0xb2d56212
mov dx, word [0x49213a]
mov cx, dx
sub ecx, eax
mov dx, cx
mov word [0x49213a], dx
mov eax, dword [esp + 0x574]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.0041e2a0
mov dx, word [0x492e68]
movsx eax, dx
sar eax, 2
mov dx, word [0x48eb6a]
mov cx, dx
inc ecx
mov si, cx
mov word [0x48eb6a], si
movsx ecx, dx
mov dx, word [0x4908ec]
movsx edi, dx
imul ecx, edi
sub eax, ecx
mov dword [0x4861c8], eax
mov eax, dword [esp + 0x570]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x540]
call fcn.00440d90
sub esp, 4
mov dx, word [0x493a3a]
movsx ecx, dx
imul ecx, ecx, 0xdc864275
mov edi, dword [esp + 0xb8]
cmp edi, ecx
mov dword [esp + 0xb4], eax
jle 0x4101a4
mov eax, dword [0x48dcd4]
inc eax
mov dword [0x48dcd4], eax
and eax, 0xbf920642
mov ecx, dword [0x48d71c]
sub ecx, eax
mov dword [0x48d71c], ecx
lea eax, [esp + 0x540]
lea ecx, [esp + 0x13f]
mov edx, dword [esp + 0x570]
mov esi, esp
mov dword [esi + 4], edx
mov dword [esi], 0x1f
mov dword [esp + 0xb0], eax
mov dword [esp + 0xac], ecx
call fcn.0041e2a0
mov di, word [0x48e86e]
mov ax, di
imul eax, eax, 0x5f1c0c1c
mov di, ax
mov word [0x48e86e], di
mov eax, dword [esp + 0xb0]
mov ecx, eax
call fcn.00411270
lea ecx, [esp + 0x540]
mov dword [esp + 0xa8], eax
call fcn.00450900
mov ecx, 0xb650560
mov dword [esp], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xb650560
mov dword [esp + 0xa4], ecx
call fcn.0040d9f0
cmp eax, 0
jne 0x410e16
mov eax, dword [0x48ad84]
imul eax, eax, 0x550556ca
add eax, 0xd2134362
mov cx, word [0x49071e]
mov dx, cx
or edx, eax
mov cx, dx
mov word [0x49071e], cx
cmp dword [0x4940bc], 6
jb 0x410384
mov eax, 0xd1adc9da
mov cx, word [0x490868]
mov dx, cx
and edx, 0xf3a0
mov cx, dx
mov word [0x490868], cx
mov edx, esp
mov dword [edx + 4], 0x12
mov dword [edx], 0x2174
mov dword [esp + 0xa0], eax
call fcn.0044b9d0
mov dword [esp + 0x56c], eax
mov eax, dword [0x488a9c]
mov edx, dword [esp + 0xa0]
cmp edx, eax
jle 0x4102fd
mov eax, dword [0x48ac54]
shl eax, 8
xor eax, 0x9d98
mov cx, word [0x48edd4]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x48edd4], cx
jmp 0x41030c
mov eax, dword [0x48dba8]
or eax, 0x20124330
mov dword [0x48dba8], eax
mov eax, dword [esp + 0x56c]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x13f]
mov dword [ecx], eax
mov dword [ecx + 8], 0x49414c
call fcn.004563de
mov dx, word [0x492234]
mov cx, dx
add ecx, 0x9f0d7894
mov dx, cx
mov word [0x492234], dx
mov ecx, dword [esp + 0x56c]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x12
mov dword [esp + 0x9c], eax
call fcn.0041e2a0
mov dx, word [0x48f3d4]
mov ax, dx
imul eax, eax, 0xa20363ff
mov dx, ax
mov word [0x48f3d4], dx
jmp 0x4104a7
mov eax, 0x8eb6f95d
mov ecx, dword [0x4887c0]
mov edx, dword [0x48afd0]
sub ecx, edx
add ecx, 0x3cc98ed1
cmp eax, ecx
jg 0x4103c3
mov eax, dword [0x487c78]
dec eax
mov dword [0x487c78], eax
xor eax, 0x886ff2ed
mov ecx, dword [0x481828]
add ecx, eax
mov dword [0x481828], ecx
mov eax, 0x3f4f34c9
mov ecx, esp
mov dword [ecx + 4], 0x24
mov dword [ecx], 0x3e48
mov dword [esp + 0x98], eax
call fcn.0044b9d0
mov dword [esp + 0x568], eax
mov dx, word [0x490734]
mov ax, dx
add eax, 0xebf63ebd
mov dx, ax
mov word [0x490734], dx
mov eax, dword [esp + 0x568]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0x13f]
mov dword [ecx], eax
mov dword [ecx + 8], 0x49414c
call fcn.004563de
mov ecx, dword [0x483970]
mov esi, ecx
dec esi
mov dword [0x483970], esi
mov esi, dword [0x481be8]
lea ecx, [esi + ecx - 1]
mov dword [0x481be8], ecx
mov ecx, dword [esp + 0x568]
mov esi, esp
mov dword [esi + 4], ecx
mov dword [esi], 0x24
mov dword [esp + 0x94], eax
call fcn.0041e2a0
mov eax, dword [0x485288]
mov ecx, dword [esp + 0x98]
cmp ecx, eax
jg 0x4104a2
mov eax, dword [0x483540]
inc eax
mov dword [0x483540], eax
mov ecx, dword [0x489314]
dec ecx
mov dword [0x489314], ecx
and eax, ecx
and eax, 0x311afbd3
mov ecx, dword [0x48bc10]
or ecx, eax
mov dword [0x48bc10], ecx
jmp 0x4104a7
mov eax, 0xffffffe7
mov cx, word [0x4938ca]
mov dx, cx
dec edx
mov cx, dx
mov word [0x4938ca], cx
movsx edx, cx
xor edx, 0x5d97ce55
mov esi, dword [0x48bfc4]
or esi, edx
mov dword [0x48bfc4], esi
mov byte [esp + 0x53f], 0
mov edx, dword [0x484d54]
mov esi, dword [0x48814c]
xor esi, edx
mov dword [0x48814c], esi
mov edx, dword [0x494910]
mov esi, esp
mov dword [esi + 4], edx
lea edx, [esp + 0x13f]
mov dword [esi], edx
mov dword [esp + 0x90], eax
mov dword [esp + 0x8c], edx
call fcn.00456160
mov edx, dword [0x48c4f4]
shl edx, 8
or edx, 0xeb40793e
mov dword [0x48a2d8], edx
mov edx, dword [0x481608]
mov esi, esp
mov edi, dword [esp + 0x8c]
mov dword [esi], edi
mov dword [esi + 4], 0
mov dword [esp + 0x88], eax
call edx
sub esp, 8
mov cx, word [0x48fc4c]
movsx edx, cx
xor edx, 0xffffffff
mov esi, dword [esp + 0x90]
cmp esi, edx
mov dword [esp + 0x84], eax
jl 0x410586
mov eax, dword [0x482818]
add eax, 0x79ffdfe0
mov dword [0x482818], eax
mov eax, 0x6e6c899b
mov ecx, esp
lea edx, [esp + 0x13f]
mov dword [ecx + 4], edx
mov dword [ecx], 0x494274
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], edx
call fcn.00456150
mov ecx, dword [0x481b74]
or ecx, 0x30039619
mov dword [0x481b74], ecx
mov ecx, esp
mov edx, dword [esp + 0x7c]
mov dword [ecx], edx
mov dword [esp + 0x78], eax
call fcn.004390c0
mov dword [esp + 0x138], eax
mov eax, dword [0x486598]
shl eax, 2
add eax, 0x77b97c8f
mov ecx, dword [esp + 0x80]
cmp ecx, eax
jne 0x410602
mov eax, dword [0x481864]
xor eax, 0xcb705408
mov dword [0x481864], eax
mov eax, 0x5d23e152
mov ecx, dword [0x481608]
mov edx, esp
lea esi, [esp + 0x13f]
mov dword [edx], esi
mov dword [edx + 4], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], esi
call ecx
sub esp, 8
mov ecx, dword [0x487778]
xor ecx, 0x458d5016
mov dword [0x487778], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2af
mov dword [esp + 0x6c], eax
call fcn.0044b9d0
mov dword [esp + 0x564], eax
mov eax, dword [0x486a88]
add eax, 0xe7dff8f7
mov dword [0x486a88], eax
mov eax, dword [esp + 0x564]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x70]
mov dword [ecx], eax
call fcn.00456160
mov ecx, dword [0x48db48]
add ecx, 0x7538b624
xor ecx, 0x86304867
mov edx, dword [0x48399c]
and edx, ecx
mov dword [0x48399c], edx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0xfa2
mov dword [esp + 0x68], eax
call fcn.0044b9d0
mov dword [esp + 0x560], eax
mov eax, dword [0x48cbe8]
dec eax
mov dword [0x48cbe8], eax
and eax, 0x61bf4152
mov dword [0x48afa4], eax
mov eax, dword [esp + 0x564]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.0041e2a0
mov eax, dword [0x482d3c]
mov ecx, eax
dec ecx
mov dword [0x482d3c], ecx
or eax, 0x6f8c8050
mov ecx, dword [esp + 0x74]
cmp ecx, eax
jle 0x41074c
mov eax, 0x10006100
mov ecx, dword [0x484a84]
imul ecx, ecx, 0x290c8450
and ecx, 0x23158e99
cmp eax, ecx
jge 0x410747
mov eax, dword [0x486570]
mov cx, word [0x491224]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x491224], cx
jmp 0x41074c
mov eax, dword [esp + 0x560]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x540]
call fcn.00440d90
sub esp, 4
mov ecx, dword [0x4884f0]
cmp ecx, 0x2000c202
mov dword [esp + 0x64], eax
jge 0x4107bc
mov eax, dword [0x48b2c8]
sar eax, 1
and eax, 0xad31f3d2
cmp eax, 0xbca26a9f
je 0x4107a8
mov eax, dword [0x4830b4]
add eax, 0x30cc57f0
mov dword [0x4830b4], eax
jmp 0x4107b7
mov eax, dword [0x48993c]
add eax, 0xd6467bab
mov dword [0x48993c], eax
jmp 0x4107bc
mov eax, dword [esp + 0x560]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.0041e2a0
mov eax, dword [0x489798]
shl eax, 5
cmp eax, 0x9396b619
jge 0x410818
mov eax, dword [0x4884a8]
inc eax
mov dword [0x4884a8], eax
mov ecx, dword [0x48982c]
and eax, ecx
inc ecx
mov dword [0x48982c], ecx
and eax, 0xeb189002
mov ecx, dword [0x48b458]
sub ecx, eax
mov dword [0x48b458], ecx
jmp 0x410828
mov eax, dword [0x4877d4]
imul eax, eax, 0x5d6eaae3
mov dword [0x4877d4], eax
lea eax, [esp + 0x540]
lea ecx, [esp + 0x13f]
mov dword [esp + 0x60], ecx
mov ecx, eax
call fcn.00411270
lea ecx, [esp + 0x540]
mov dword [esp + 0x5c], eax
call fcn.00450900
mov ecx, 0xb650560
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], 0xb650560
mov dword [esp + 0x58], ecx
call fcn.0040d9f0
cmp eax, 0
jne 0x410df1
mov ax, word [0x490d40]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x490d40], ax
movsx ecx, ax
imul ecx, ecx, 0x40061da
xor ecx, 0x309e046a
mov edx, dword [0x4884a4]
add edx, ecx
mov dword [0x4884a4], edx
mov ecx, dword [0x4815b0]
mov edx, esp
lea esi, [esp + 0x13f]
mov dword [edx + 4], esi
mov dword [edx], 0x104
mov dword [esp + 0x54], esi
call ecx
sub esp, 8
mov ecx, dword [0x482fc0]
mov edx, dword [0x484ce8]
or edx, ecx
mov dword [0x484ce8], edx
mov ecx, esp
mov edx, dword [esp + 0x54]
mov dword [ecx], edx
mov dword [esp + 0x50], eax
call fcn.00453000
mov dword [esp + 0x138], eax
mov eax, dword [0x4836f8]
sar eax, 3
mov ecx, dword [0x487e14]
or ecx, eax
mov dword [0x487e14], ecx
mov eax, dword [esp + 0x138]
add eax, 0xfffffffe
mov dword [esp + 0x138], eax
mov eax, dword [0x4857e0]
mov ecx, dword [0x486d24]
and eax, ecx
mov ecx, dword [0x486af0]
or ecx, eax
mov dword [0x486af0], ecx
mov eax, dword [esp + 0x138]
mov dword [esp + 0x134], eax
cmp dword [esp + 0x134], 0
jle 0x410a28
mov eax, dword [0x489fb4]
sar eax, 9
and eax, 0x19eb227e
mov ecx, dword [0x4886a8]
xor ecx, eax
mov dword [0x4886a8], ecx
mov eax, dword [esp + 0x134]
movsx eax, byte [esp + eax + 0x13f]
cmp eax, 0x5c
jne 0x4109fe
mov eax, dword [0x4857d0]
add eax, 0x4ff6beac
mov dword [0x4857d0], eax
mov eax, dword [esp + 0x134]
inc eax
mov dword [esp + 0x134], eax
mov eax, dword [0x488e7c]
xor eax, 0xffb5dcde
mov dword [0x488e7c], eax
mov eax, dword [esp + 0x134]
mov byte [esp + eax + 0x13f], 0
mov eax, dword [0x4877ec]
add eax, 0xe67d4d7
mov dword [0x4877ec], eax
mov eax, dword [esp + 0x134]
mov dword [esp + 0x138], eax
mov eax, dword [0x482bf0]
add eax, 0xd9931cec
mov dword [0x482bf0], eax
jmp 0x410a28
mov eax, dword [0x484bbc]
xor eax, 0x8dbe
mov cx, ax
mov word [0x4908ae], cx
mov eax, dword [esp + 0x134]
add eax, 0xffffffff
mov dword [esp + 0x134], eax
jmp 0x410950
mov eax, 0xfcda7abf
mov ecx, dword [0x486f30]
sar ecx, 1
xor ecx, 0x5cf6a5bd
mov edx, dword [0x489be8]
add edx, ecx
mov dword [0x489be8], edx
mov ecx, esp
lea edx, [esp + 0x13f]
mov dword [ecx + 4], edx
mov dword [ecx], 0x494274
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], edx
call fcn.00456150
mov si, word [0x48f8de]
mov cx, si
add ecx, 0xfcfdffef
mov si, cx
mov word [0x48f8de], si
mov ecx, esp
mov edx, dword [esp + 0x48]
mov dword [ecx], edx
mov dword [esp + 0x44], eax
call fcn.004390c0
mov dword [esp + 0x138], eax
mov eax, dword [0x4891e4]
add eax, 0xa8588022
mov dword [0x4891e4], eax
mov eax, dword [0x481608]
mov ecx, esp
mov edx, dword [esp + 0x48]
mov dword [ecx], edx
mov dword [ecx + 4], 0
call eax
sub esp, 8
mov ecx, dword [0x486b54]
mov edx, ecx
dec edx
mov dword [0x486b54], edx
or ecx, 0x64e62240
mov dword [0x482c28], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2af
mov dword [esp + 0x40], eax
call fcn.0044b9d0
mov dword [esp + 0x55c], eax
mov si, word [0x48e8ea]
mov ax, si
add eax, 0x2085207
mov si, ax
mov word [0x48e8ea], si
mov eax, dword [esp + 0x55c]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x48]
mov dword [ecx], eax
call fcn.00456160
mov ecx, dword [0x481da8]
add ecx, 0x63b7e7a9
mov dword [0x481da8], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0xfa2
mov dword [esp + 0x3c], eax
call fcn.0044b9d0
mov dword [esp + 0x558], eax
mov eax, dword [0x484434]
or eax, 0xe2a52c92
mov dword [0x484434], eax
mov eax, dword [esp + 0x55c]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.0041e2a0
mov eax, dword [0x48b8f0]
add eax, 0x89bede88
mov dword [0x48b8f0], eax
mov eax, dword [esp + 0x558]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x540]
call fcn.00440d90
sub esp, 4
mov ecx, dword [0x48389c]
shl ecx, 3
mov si, word [0x4926fe]
mov dx, si
xor edx, ecx
mov si, dx
mov word [0x4926fe], si
mov ecx, dword [esp + 0x558]
mov edx, esp
mov dword [edx + 4], ecx
mov dword [edx], 0x1f
mov dword [esp + 0x38], eax
call fcn.0041e2a0
mov eax, dword [0x483284]
sub eax, 0x84215a6f
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
je 0x410c16
mov eax, dword [0x4860f8]
not eax
add eax, 0xbb9a4a81
mov ecx, dword [0x489bd8]
and ecx, eax
mov dword [0x489bd8], ecx
lea eax, [esp + 0x540]
lea ecx, [esp + 0x13f]
mov dword [esp + 0x34], ecx
mov ecx, eax
call fcn.00411270
lea ecx, [esp + 0x540]
mov dword [esp + 0x30], eax
call fcn.00450900
mov ecx, 0xb650560
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0xb650560
mov dword [esp + 0x2c], ecx
call fcn.0040d9f0
cmp eax, 0
jne 0x410de2
mov ax, word [0x48fde0]
movsx ecx, ax
and ecx, 0x51180002
or ecx, 0xcc47785
mov edx, dword [0x486688]
and edx, ecx
mov dword [0x486688], edx
mov ecx, dword [0x4815b0]
mov edx, esp
lea esi, [esp + 0x13f]
mov dword [edx + 4], esi
mov dword [edx], 0x104
mov dword [esp + 0x28], esi
call ecx
sub esp, 8
mov di, word [0x4927b6]
mov cx, di
xor ecx, 0x5e09
mov di, cx
mov word [0x4927b6], di
mov ecx, esp
mov edx, dword [esp + 0x28]
mov dword [ecx + 4], edx
mov dword [ecx], 0x494274
mov dword [esp + 0x24], eax
call fcn.00456150
mov ecx, dword [0x481960]
sar ecx, 7
mov edx, dword [0x48b588]
imul edx, ecx
shl edx, 4
mov ecx, dword [0x483aec]
and ecx, edx
mov dword [0x483aec], ecx
mov ecx, esp
mov dword [ecx + 4], 0x1f
mov dword [ecx], 0x2af
mov dword [esp + 0x20], eax
call fcn.0044b9d0
mov dword [esp + 0x554], eax
mov eax, dword [0x482820]
mov ecx, 0xbfcf963b
sub ecx, eax
mov eax, dword [0x482eec]
imul eax, ecx
mov dword [0x482eec], eax
mov eax, dword [esp + 0x554]
mov ecx, esp
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
call fcn.00456160
mov ecx, dword [0x4850c8]
and ecx, 0x242ce89f
cmp ecx, 0xb7853b05
mov dword [esp + 0x1c], eax
jle 0x410dac
mov eax, dword [0x4889b4]
mov ecx, dword [0x48cbac]
inc ecx
mov dword [0x48cbac], ecx
or eax, ecx
mov ecx, dword [0x48d644]
or eax, ecx
mov dx, word [0x49365a]
mov cx, dx
or ecx, eax
mov dx, cx
mov word [0x49365a], dx
jmp 0x410dbc
mov eax, dword [0x4847ac]
imul eax, eax, 0x3a3ff97f
mov dword [0x4847ac], eax
mov eax, dword [esp + 0x554]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x1f
call fcn.0041e2a0
mov eax, dword [0x48a8f8]
or eax, 0x429e246d
mov dword [0x48a8f8], eax
mov eax, dword [0x481c5c]
add eax, 0x6cda2c37
mov dword [0x481c5c], eax
mov eax, 0x5ddffcff
mov ecx, dword [0x48c238]
sar ecx, 3
cmp eax, ecx
jg 0x410e11
mov dword [0x48b298], 0x3e0987ea
jmp 0x410e16
mov eax, dword [0x4849b0]
imul eax, eax, 0x5803c220
mov dword [0x4849b0], eax
mov eax, esp
lea ecx, [esp + 0x13f]
mov dword [eax], ecx
mov dword [esp + 0x18], ecx
call fcn.004390c0
mov ecx, dword [0x487194]
mov edx, ecx
inc edx
mov dword [0x487194], edx
mov edx, dword [0x48bed4]
imul ecx, edx
imul ecx, ecx, 0x297286d9
mov dword [0x48bed4], ecx
mov ecx, dword [0x4815bc]
mov edx, esp
mov esi, dword [esp + 0x18]
mov dword [edx], esi
mov dword [edx + 4], 2
mov dword [esp + 0x14], eax
call ecx
sub esp, 8
mov ecx, dword [0x48c9b8]
or ecx, 0xaf47db9e
mov dword [0x48c9b8], ecx
mov ecx, esp
mov edx, dword [esp + 0x18]
mov dword [ecx], edx
mov dword [ecx + 4], 0x401
mov dword [esp + 0x10], eax
call fcn.0041bac0
mov eax, dword [0x481e08]
shl eax, 6
mov ecx, dword [0x484974]
sar ecx, 4
add eax, ecx
mov ecx, dword [0x48b70c]
xor eax, ecx
xor eax, 0xd24cf94f
mov dword [0x48b70c], eax
lea ecx, [esp + 0x540]
call fcn.004508f0
add esp, 0x580
pop esi
pop edi
pop ebx
ret