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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov al, byte [ebp + 0xc]
mov edx, dword [ebp + 8]
mov esi, 0xf9b790fb
and al, 1
mov byte [esp + 0x15b], al
mov dword [esp + 0x154], edx
mov dword [esp + 0x150], ecx
mov di, word [0x4b71a2]
movsx edx, di
cmp esi, edx
mov dword [esp + 0xb0], ecx
jge 0x4037d7
mov ax, word [0x4afbf0]
mov cx, ax
xor ecx, 0x56f2
mov ax, cx
mov word [0x4afbf0], ax
jmp 0x4037fc
mov ax, word [0x4b3fd8]
mov cx, ax
not ecx
and ecx, 0x6822
mov ax, word [0x4b22b4]
mov dx, ax
xor edx, ecx
mov ax, dx
mov word [0x4b22b4], ax
mov eax, 0x9efed021
mov dword [esp + 0x14c], 0
mov cx, word [0x4b00c6]
mov dx, cx
inc edx
mov si, dx
mov word [0x4b00c6], si
movsx edx, cx
imul edx, edx, 0xbf9cd6cf
add edx, 0x6a156991
cmp eax, edx
jge 0x40385c
mov eax, dword [0x4acb00]
inc eax
mov dword [0x4acb00], eax
imul eax, eax, 0x29c06672
mov ecx, dword [0x4a7798]
or ecx, eax
mov dword [0x4a7798], ecx
jmp 0x403874
mov eax, dword [0x4a5b7c]
add eax, 0x33b3bcc7
mov ecx, dword [0x4aa300]
and ecx, eax
mov dword [0x4aa300], ecx
mov eax, 0x37742fbc
mov ecx, esp
mov dword [ecx], 0
mov dword [esp + 0xac], eax
call fcn.00451630
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
mov si, word [0x4b22d4]
movsx eax, si
xor eax, 0x2c22a127
mov ecx, dword [0x4a30f0]
and ecx, eax
mov dword [0x4a30f0], ecx
mov byte [esp + 0x13f], 0
mov eax, dword [0x49ee00]
or eax, 0x656d70a5
mov dword [0x49ee00], eax
mov eax, dword [0x49a124]
mov ecx, esp
mov edx, dword [esp + 0xb0]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, dword [0x4a4bdc]
shl eax, 8
imul eax, eax, 0x2db92839
mov ecx, dword [esp + 0xac]
sub ecx, eax
cmp ecx, 0xc364df70
jge 0x403931
mov ax, word [0x4ae5d8]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4ae5d8], ax
movsx ecx, ax
and ecx, 0x1035b176
mov edx, dword [0x4a0af4]
or edx, ecx
mov dword [0x4a0af4], edx
test byte [esp + 0x15b], 1
je 0x403a69
mov eax, 0xf1377fff
mov ecx, dword [0x4adcd8]
mov edx, ecx
inc edx
mov dword [0x4adcd8], edx
cmp eax, ecx
jge 0x403999
mov eax, dword [0x49c674]
shr eax, 6
mov ecx, dword [0x49b9c4]
mov edx, ecx
dec edx
mov dword [0x49b9c4], edx
lea eax, [eax + ecx - 1]
mov ecx, dword [0x49e5c0]
and eax, ecx
mov si, word [0x4b3056]
mov cx, si
add ecx, eax
mov si, cx
mov word [0x4b3056], si
jmp 0x4039b2
mov eax, dword [0x4a8934]
imul eax, eax, 0xe64463e8
mov ecx, dword [0x4a2ab4]
or ecx, eax
mov dword [0x4a2ab4], ecx
mov eax, dword [esp + 0xb0]
add eax, 0x18
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx + 0x18]
mov esi, dword [ecx + 0x1c]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xa4], edx
mov dword [esp + 0xa0], esi
jmp 0x4039e3
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
xor edx, edx
mov dword [esp + 0x9c], eax
mov eax, ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x98], edx
mov edx, ecx
mov ebx, dword [esp + 0x98]
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0xa8]
lock cmpxchg8b qword [esi]
mov dword [esp + 0xa4], eax
mov dword [esp + 0xa0], edx
jne 0x4039e3
jmp 0x403a3e
mov ax, word [0x4b80ce]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x4b80ce], dx
movsx ecx, ax
xor ecx, 0xf269e3e7
mov esi, dword [0x4a3a30]
and esi, ecx
mov dword [0x4a3a30], esi
mov eax, dword [0x4ad5e0]
add eax, 0x1c483585
mov dword [0x4ad5e0], eax
xor eax, eax
mov dword [esp + 0x94], eax
mov edx, dword [esp + 0x94]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0xb0]
lock cmpxchg8b qword [esi + 0x18]
mov ecx, dword [esp + 0x140]
mov ebx, dword [esp + 0x144]
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x8c], ebx
jae 0x403b7f
jmp 0x403acd
mov eax, 0xd25754f6
mov cx, word [0x4aeefa]
mov dx, cx
inc edx
mov si, dx
mov word [0x4aeefa], si
movsx edx, cx
add edx, 0x13152e98
xor edx, 0x4936ead8
mov edi, dword [0x4ab268]
add edi, edx
mov dword [0x4ab268], edi
mov edx, dword [esp + 0x154]
mov edi, dword [esp + 0xb0]
movsd xmm0, qword [edi + 0x20]
movsd xmm1, qword [edi + 0x28]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
mov edx, dword [0x49bff0]
cmp eax, edx
jne 0x403b3d
mov dword [0x4ac024], 0x55962277
mov eax, 0xbbc0194b
mov dword [esp + 0x14c], 1
mov cx, word [0x4ae9e6]
movsx edx, cx
xor edx, 0x999fa5ea
or edx, 0x372d1848
cmp eax, edx
jl 0x403b7a
mov eax, dword [0x4a14b0]
and eax, 0xd52964d4
mov dword [0x4a14b0], eax
jmp 0x403bd4
mov eax, 0x6aef43d6
mov ecx, dword [0x4a021c]
mov edx, ecx
inc edx
mov dword [0x4a021c], edx
add ecx, 0x3a4ea18e
mov edx, dword [0x4a8a7c]
and edx, ecx
mov dword [0x4a8a7c], edx
mov byte [esp + 0x13f], 1
mov ecx, dword [0x4a6fa4]
shl ecx, 1
cmp eax, ecx
jg 0x403bcf
mov eax, dword [0x4a32e4]
or eax, 0xd2b243e5
mov dword [0x4a32e4], eax
jmp 0x403bd4
mov eax, dword [0x4a9300]
mov ecx, eax
inc ecx
mov dword [0x4a9300], ecx
and eax, 0xc141cd27
mov dword [0x4ae108], eax
mov eax, dword [0x49a128]
mov ecx, esp
mov edx, dword [esp + 0xb0]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, dword [0x49f050]
or eax, 0x88a11ead
mov dword [0x4a4134], eax
test byte [esp + 0x13f], 1
je 0x404cbe
mov eax, dword [0x49a524]
inc eax
mov dword [0x49a524], eax
xor eax, 0x12005008
mov ecx, dword [0x4a6e9c]
or eax, ecx
or eax, 0x68f68587
mov dword [0x4a6e9c], eax
mov dword [esp + 0x134], 0
mov dword [esp + 0x130], 0
mov eax, dword [0x49a9d4]
add eax, 0x9124281
mov dword [0x49a9d4], eax
mov dword [esp + 0x12c], 0
mov eax, dword [0x4a19ec]
imul eax, eax, 0x49f78286
add eax, 0xf705bf88
mov ecx, dword [0x49d0f8]
sub ecx, eax
mov dword [0x49d0f8], ecx
mov eax, esp
mov dword [eax + 4], 0x600
mov dword [eax], 0x4d2f
call fcn.004489c0
mov dword [esp + 0x128], eax
mov eax, dword [0x4a3598]
or eax, 0xc9f3ce8a
mov dword [0x4a3598], eax
mov eax, dword [esp + 0x128]
mov dl, byte [eax]
mov byte [esp + 0x127], dl
mov eax, dword [0x4ad234]
shl eax, 6
mov ecx, dword [0x49c928]
lea eax, [eax + ecx + 0x4326fb92]
mov dword [0x49c928], eax
mov eax, dword [0x4a9cf0]
xor eax, 0x3a875feb
mov dword [0x4a9cf0], eax
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
mov eax, dword [0x4a8148]
mov ecx, eax
inc ecx
mov dword [0x4a8148], ecx
add eax, 0x2829bec0
mov ecx, dword [0x4ab440]
xor eax, ecx
xor eax, 0x426e942b
mov dword [0x4ab440], eax
mov word [esp + 0x110], 2
mov eax, dword [0x49aa1c]
mov ecx, eax
inc ecx
mov dword [0x49aa1c], ecx
mov ecx, 0x762bc225
sub ecx, eax
mov dword [0x4aabd8], ecx
mov eax, dword [0x4a0784]
add eax, 0x73e80000
mov dword [0x4a0784], eax
mov dword [esp + 0xfd], 0x13
mov eax, dword [0x4a620c]
imul eax, eax, 0x20ed38f1
or eax, 0x913d
mov si, word [0x4af7b4]
mov cx, si
xor ecx, eax
mov si, cx
mov word [0x4af7b4], si
mov dword [esp + 0x101], 0
mov eax, dword [0x4a4224]
add eax, eax
or eax, 0x8be8a0d
mov ecx, dword [0x4a8b78]
add ecx, eax
mov dword [0x4a8b78], ecx
mov dword [esp + 0x105], 7
mov eax, dword [0x49ec10]
imul eax, eax, 0x6c4538e8
mov dword [0x49ec10], eax
mov byte [esp + 0x109], 3
mov si, word [0x4b40e6]
mov ax, si
inc eax
mov si, ax
mov word [0x4b40e6], si
movsx eax, si
mov ecx, dword [0x49d168]
and ecx, eax
mov dword [0x49d168], ecx
lea ecx, [esp + 0xe8]
call fcn.0041b120
mov ecx, dword [0x4adf10]
add ecx, 0xce1c4e28
mov edi, dword [0x4abed8]
cmp ecx, edi
mov dword [esp + 0x88], eax
jg 0x403e30
mov eax, dword [0x4a2678]
add eax, 0xcf4c5e8e
mov dword [0x4a2678], eax
mov eax, 0xacb49c02
movzx ecx, byte [esp + 0x127]
mov edx, esp
mov dword [edx], ecx
mov dword [edx + 4], 0
lea ecx, [esp + 0xe8]
mov dword [esp + 0x84], eax
call fcn.0041caf0
sub esp, 8
mov eax, dword [0x4ac70c]
sar eax, 0xa
mov ecx, dword [0x4a0f40]
shl ecx, 9
xor eax, ecx
mov ecx, dword [esp + 0x84]
cmp ecx, eax
jge 0x403e8f
mov eax, dword [0x4a56e8]
and eax, 0xef78ffef
mov dword [0x4a56e8], eax
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0xe4]
movzx ecx, byte [esp + 0x127]
cmp eax, ecx
je 0x403f00
mov eax, dword [0x4adbbc]
imul eax, eax, 0xcc7c761f
mov dword [0x4adbbc], eax
mov eax, esp
lea ecx, [esp + 0xe4]
mov dword [eax], ecx
lea ecx, [esp + 0xe8]
call fcn.0040fc00
sub esp, 4
mov eax, dword [0x49a68c]
or eax, 0x777f42ac
mov dword [0x49a68c], eax
mov eax, dword [esp + 0xe4]
add eax, 1
mov dword [esp + 0xe4], eax
jmp 0x403e9a
mov eax, 0xb87e65e4
mov ecx, dword [0x4a3d74]
mov edx, dword [0x49f3d4]
xor edx, 0xffffffff
and ecx, edx
xor ecx, 0x11d3b96a
cmp eax, ecx
jle 0x403f43
mov eax, dword [0x49eac0]
mov ecx, eax
inc ecx
mov dword [0x49eac0], ecx
mov dx, word [0x4b62d0]
movsx ecx, dx
and eax, ecx
mov dword [0x4a56c8], eax
mov eax, esp
lea ecx, [esp + 0xe8]
mov dword [eax], ecx
call fcn.0044d1a0
mov eax, dword [0x4aaa70]
or eax, 0x3c2642be
mov dword [0x4aaa70], eax
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
movzx ecx, byte [esp + 0x127]
cmp eax, ecx
je 0x404a46
mov eax, 0x3f5ffff1
mov ecx, dword [0x4ad6ac]
add ecx, 0x80115000
mov dword [0x4ad6ac], ecx
mov ecx, dword [esp + 0xe0]
mov edx, esp
mov dword [edx], ecx
lea ecx, [esp + 0xe8]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], eax
call fcn.004254f0
sub esp, 4
mov eax, dword [eax]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x128]
mov eax, dword [ecx + eax*2 + 1]
mov dword [esp + 0x114], eax
mov eax, dword [0x49f034]
and eax, 0x20888400
mov dword [0x49f034], eax
mov eax, dword [esp + 0xe0]
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x80]
call fcn.004254f0
sub esp, 4
mov eax, dword [eax]
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x128]
mov si, word [ecx + eax*2 + 5]
mov word [esp + 0x112], si
mov eax, dword [0x4ab220]
dec eax
mov dword [0x4ab220], eax
imul eax, eax, 0xabe2995c
mov si, word [0x4b0d86]
mov cx, si
sub ecx, eax
mov si, cx
mov word [0x4b0d86], si
lea ecx, [esp + 0xcc]
call fcn.00424ca0
mov ecx, dword [0x4ad4a4]
dec ecx
mov dword [0x4ad4a4], ecx
xor ecx, 0xe7250247
mov edx, dword [0x4a5b84]
add edx, ecx
mov dword [0x4a5b84], edx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x10a], ecx
mov ecx, dword [0x49a244]
not ecx
imul ecx, ecx, 0x83e5bd0f
mov edx, dword [0x4a0468]
xor edx, 0xffffffff
xor ecx, edx
mov edx, dword [esp + 0x7c]
cmp edx, ecx
mov dword [esp + 0x78], eax
jne 0x4040c2
mov eax, dword [0x49ba1c]
imul eax, eax, 0x39610e00
mov ecx, dword [0x4acbd8]
add ecx, eax
mov dword [0x4acbd8], ecx
jmp 0x4040d1
mov eax, dword [0x4a40a0]
and eax, 0x220c2849
mov dword [0x4a40a0], eax
mov eax, 0x62e8da42
mov cx, word [esp + 0x112]
mov word [esp + 0x10e], cx
mov cx, word [0x4b12f4]
movsx edx, cx
shl edx, 4
mov esi, dword [0x4ada94]
imul edx, esi
cmp eax, edx
jne 0x40410e
mov dword [0x49a1e0], 0x36fcd491
mov eax, esp
lea ecx, [esp + 0xfd]
mov dword [eax], ecx
mov dword [eax + 4], 0x13
lea ecx, [esp + 0xcc]
call fcn.0043def0
sub esp, 8
mov dx, word [0x4b23a4]
movsx ecx, dx
add ecx, 0x35f4f379
mov esi, dword [0x49b0cc]
xor esi, ecx
mov dword [0x49b0cc], esi
mov ecx, esp
lea esi, [esp + 0xcc]
mov dword [ecx + 4], esi
lea esi, [esp + 0x110]
mov dword [ecx], esi
mov dword [ecx + 0xc], 0
mov dword [ecx + 8], 2
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x74], eax
call fcn.0044be50
sub esp, 0x10
cmp eax, 0
jg 0x4041ab
mov eax, dword [0x49a614]
and eax, 0xebb79e9e
mov dword [0x49a614], eax
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, dword [0x4a20f8]
shl eax, 4
and eax, 0x1b406f50
mov ecx, dword [0x4a1734]
add ecx, 0x95e252f0
cmp eax, ecx
jg 0x4041dc
mov eax, dword [0x49d9c0]
imul eax, eax, 0x86dd6671
mov dword [0x49d9c0], eax
lea eax, [esp + 0xcc]
mov ecx, eax
call fcn.0040ea90
cmp eax, 0x400
ja 0x40421d
mov ax, word [0x4aec7c]
mov cx, ax
add ecx, 0x1200407
mov ax, cx
mov word [0x4aec7c], ax
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, 0x92bdcf84
mov ecx, dword [0x4a74c4]
mov edx, ecx
dec edx
mov dword [0x4a74c4], edx
and ecx, 0x1addd21d
mov edx, dword [0x4a089c]
sar edx, 0xa
xor ecx, edx
cmp eax, ecx
jne 0x404259
mov eax, dword [0x4aa9e8]
and eax, 0x6d7ff6ff
mov dword [0x4aa9e8], eax
lea eax, [esp + 0xcc]
mov ecx, eax
call fcn.0040ea90
cmp eax, 0x4000
jbe 0x40429a
mov ax, word [0x4b8088]
mov cx, ax
add ecx, 0x7f1fe879
mov ax, cx
mov word [0x4b8088], ax
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, dword [0x49f130]
add eax, 0x8f670471
mov dword [0x49f130], eax
lea ecx, [esp + 0xcc]
call fcn.00442da0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x140]
mov esi, dword [esp + 0x144]
sub ecx, edx
sbb eax, esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], ecx
jae 0x40437d
jmp 0x4042df
mov eax, dword [0x4add44]
and eax, 0x178169d7
mov ecx, dword [0x49d888]
mov edx, ecx
inc edx
mov dword [0x49d888], edx
xor eax, ecx
mov ecx, dword [0x4a55a4]
add ecx, eax
mov dword [0x4a55a4], ecx
mov eax, dword [esp + 0x12c]
inc eax
mov dword [esp + 0x12c], eax
mov eax, dword [0x4a5b48]
xor eax, 0xe4cbf77e
mov dword [0x4a5b48], eax
cmp dword [esp + 0x12c], 3
jne 0x40434d
mov word [0x4b0312], 0x404d
mov dword [esp + 0xc8], 5
jmp 0x4049ef
mov eax, dword [0x4a5f10]
add eax, 0xc477e3ba
mov cx, word [0x4b5c06]
mov dx, cx
and edx, eax
mov cx, dx
mov word [0x4b5c06], cx
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, 0x6ae4375c
mov cx, word [0x4b0dcc]
mov dx, cx
or edx, 0x1ca4
mov cx, dx
mov word [0x4b0dcc], cx
mov dword [esp + 0x12c], 0
mov cx, word [0x4b15fc]
movsx edx, cx
cmp eax, edx
jle 0x4043f2
mov eax, dword [0x49efac]
cmp eax, 0x11638c5
jge 0x4043ed
mov eax, dword [0x49d21c]
inc eax
mov dword [0x49d21c], eax
imul eax, eax, 0x3211e5e4
and eax, 0x3a2754f4
mov ecx, dword [0x49a75c]
add ecx, eax
mov dword [0x49a75c], ecx
jmp 0x4043f2
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xcc]
mov dword [esp + 0x68], eax
call fcn.00442da0
movzx eax, word [eax + 8]
mov dword [esp + 0xc4], eax
mov word [0x4b5966], 0xfe7f
imul eax, dword [esp + 0xc4], 6
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x64], eax
call fcn.0040ea90
sub eax, 0x400
sub eax, 0xa
mov ecx, dword [esp + 0x64]
cmp ecx, eax
jbe 0x40446e
mov ax, word [0x4b668e]
mov cx, ax
add ecx, 0x7f5cefea
mov ax, cx
mov word [0x4b668e], ax
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, 0x14c2e000
mov ecx, dword [0x4a34c0]
dec ecx
mov dword [0x4a34c0], ecx
imul ecx, ecx, 0xe4ef0a86
add ecx, 0x2a0e7e55
mov dx, word [0x4b0a00]
mov si, dx
xor esi, ecx
mov dx, si
mov word [0x4b0a00], dx
mov byte [esp + 0xc3], 0
mov dx, word [0x4b23f4]
movsx ecx, dx
and ecx, 0x837e7090
cmp eax, ecx
jl 0x4044d6
mov eax, dword [0x4a0d54]
and eax, 0x4b1bd058
mov dword [0x4a0d54], eax
jmp 0x4044ee
mov ax, word [0x4b061a]
mov cx, ax
xor ecx, 0xe5e5
mov ax, cx
mov word [0x4b061a], ax
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0xc4]
je 0x4046b2
lea eax, [esp + 0xcc]
mov cx, word [0x4b0af6]
mov dx, cx
add edx, 0xd280e8bf
mov cx, dx
mov word [0x4b0af6], cx
mov edx, dword [esp + 0x114]
imul esi, dword [esp + 0xbc], 6
add esi, 0xa
mov ecx, eax
mov dword [esp + 0x60], esi
mov dword [esp + 0x5c], edx
call fcn.00442da0
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
cmp ecx, dword [eax + edx]
jne 0x404673
lea eax, [esp + 0xcc]
mov ecx, dword [0x49f0b0]
add ecx, 0xded5effe
mov dword [0x49f0b0], ecx
movzx ecx, word [esp + 0x112]
imul edx, dword [esp + 0xbc], 6
add edx, 0xa
mov dword [esp + 0x58], ecx
mov ecx, eax
mov dword [esp + 0x54], edx
call fcn.00442da0
mov ecx, dword [esp + 0x54]
movzx eax, word [eax + ecx + 4]
mov edx, dword [esp + 0x58]
cmp edx, eax
jne 0x404637
mov eax, 0x5f7ae03e
mov ecx, dword [0x4a7c50]
not ecx
mov dx, word [0x4b332c]
movsx esi, dx
imul ecx, esi
cmp eax, ecx
je 0x40460f
mov eax, dword [0x49e0a8]
xor eax, 0x31cd9220
cmp eax, 0xe1420da3
jg 0x40460a
mov eax, dword [0x4a5e2c]
mov ecx, 0x9b867254
sub ecx, eax
mov dx, word [0x4b6d1e]
mov ax, dx
imul eax, ecx
mov dx, ax
mov word [0x4b6d1e], dx
jmp 0x40460f
mov byte [esp + 0xc3], 1
mov eax, dword [0x4ace48]
mov ecx, dword [0x49f26c]
add eax, ecx
mov ecx, dword [0x4a76f0]
sub ecx, eax
mov dword [0x4a76f0], ecx
jmp 0x4046b2
mov eax, 0xbf4789bf
mov ecx, dword [0x4ac6f4]
mov edx, ecx
dec edx
mov dword [0x4ac6f4], edx
imul ecx, ecx, 0xe1a1537e
and ecx, 0x5febf7ec
cmp eax, ecx
jne 0x40466e
mov eax, dword [0x4a4364]
xor eax, 0x38fc0486
mov dword [0x4a4364], eax
jmp 0x404673
mov eax, dword [0x4a7304]
mov ecx, dword [0x4a11b0]
inc ecx
mov dword [0x4a11b0], ecx
imul eax, ecx
mov ecx, dword [0x49f684]
imul eax, ecx
imul eax, eax, 0x35366272
mov dword [0x49f684], eax
mov eax, dword [esp + 0xbc]
add eax, 1
mov dword [esp + 0xbc], eax
jmp 0x4044f9
mov ax, word [0x4b7b7c]
movsx ecx, ax
not ecx
mov edx, dword [0x4a007c]
sub edx, ecx
mov dword [0x4a007c], edx
test byte [esp + 0xc3], 1
jne 0x4046f3
mov dword [0x4a9a8c], 0xd22b0db8
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, 0x26975de4
mov cx, word [0x4b260a]
mov dx, cx
mov esi, dword [0x4a9ca4]
shr esi, 0xa
add edx, esi
mov cx, word [0x4b0336]
mov si, cx
sub esi, edx
mov cx, si
mov word [0x4b0336], cx
mov edx, esp
mov dword [edx + 4], 0x408
mov dword [edx], 0x28c6
mov dword [esp + 0x50], eax
call fcn.004489c0
mov dword [esp + 0xb8], eax
mov eax, dword [0x4a7398]
or eax, 0xff5e1f44
mov dword [0x4a7398], eax
lea eax, [esp + 0xcc]
mov ecx, eax
mov dword [esp + 0x4c], eax
call fcn.0040ea90
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
call fcn.00442da0
mov ecx, dword [esp + 0xb8]
mov edx, esp
mov esi, dword [esp + 0x48]
mov dword [edx + 8], esi
mov dword [edx + 4], eax
mov dword [edx], ecx
call fcn.00425520
mov dword [esp + 0xb4], eax
mov di, word [0x4b4fe2]
mov ax, di
dec eax
mov di, ax
mov word [0x4b4fe2], di
or eax, 0x7d4f
mov di, word [0x4b01b6]
mov cx, di
imul ecx, eax
mov di, cx
mov word [0x4b01b6], di
mov eax, dword [esp + 0xb8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x408
call fcn.004073a0
mov eax, dword [0x49f114]
xor eax, 0xffffffff
or eax, 0xf97186ef
mov ecx, dword [esp + 0x50]
cmp ecx, eax
jl 0x40480f
mov eax, dword [0x4a0e24]
mov ecx, eax
inc ecx
mov dword [0x4a0e24], ecx
mov ecx, dword [0x49fe2c]
lea eax, [eax + ecx + 1]
mov dword [0x4a65e8], eax
cmp dword [esp + 0xb4], 4
jle 0x404842
lea eax, [esp + 0xcc]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x44], ecx
mov ecx, eax
call fcn.0040ea90
mov ecx, dword [esp + 0x44]
cmp ecx, eax
jbe 0x4048ad
mov eax, 0x9f068ff5
mov ecx, dword [0x4a6134]
add ecx, 0x29cd4d2e
xor ecx, 0x3db330f7
mov edx, dword [0x4a86c4]
imul edx, ecx
mov dword [0x4a86c4], edx
mov dword [esp + 0xb4], 0
mov si, word [0x4af2d4]
mov cx, si
dec ecx
mov di, cx
mov word [0x4af2d4], di
movsx ecx, si
add ecx, 0x67de2fc
cmp eax, ecx
jg 0x4048a8
mov eax, dword [0x49ef9c]
add eax, 0xec700061
mov dword [0x49ef9c], eax
jmp 0x40490b
mov eax, dword [0x4a6814]
imul eax, eax, 0xdd836552
mov dword [0x4a6814], eax
mov eax, dword [esp + 0xb4]
add eax, 0xfffffffc
mov dword [esp + 0xb4], eax
mov eax, dword [0x4a36f4]
add eax, eax
xor eax, 0xa27d301c
mov ecx, dword [0x49d74c]
xor ecx, 0xffffffff
and ecx, 0xf47db60b
or ecx, 0x1c315811
cmp eax, ecx
jge 0x404906
mov eax, dword [0x4ad264]
add eax, 0xba11ceed
mov dword [0x4ad264], eax
jmp 0x40490b
mov eax, 0x39048c95
mov ecx, dword [0x4a21d0]
inc ecx
mov dword [0x4a21d0], ecx
or ecx, 0x38237526
cmp eax, ecx
jge 0x40493a
mov eax, dword [0x4a7360]
or eax, 0xb84c2f94
mov dword [0x4a7360], eax
mov eax, dword [esp + 0xb4]
imul ecx, dword [esp + 0xc4], 6
add ecx, 0xa
cmp eax, ecx
jge 0x40498c
mov eax, dword [0x4a9f5c]
imul eax, eax, 0xa05f5a1b
mov ecx, 0x346b4eeb
sub ecx, eax
mov dx, word [0x4b3bc8]
mov ax, dx
xor eax, ecx
mov dx, ax
mov word [0x4b3bc8], dx
mov dword [esp + 0xc8], 7
jmp 0x4049ef
mov eax, dword [0x4a530c]
mov ecx, eax
dec ecx
mov dword [0x4a530c], ecx
and eax, 0x4baab1db
xor eax, 0x5767ca0d
mov ecx, dword [0x4a39a8]
sub ecx, eax
mov dword [0x4a39a8], ecx
lea ecx, [esp + 0xcc]
call fcn.00442da0
movsd xmm0, qword [eax]
movsd qword [esp + 0x130], xmm0
mov dx, word [0x4afa86]
mov ax, dx
or eax, 0xd952
mov dx, ax
mov word [0x4afa86], dx
mov dword [esp + 0xc8], 5
lea ecx, [esp + 0xcc]
call fcn.0043daf0
mov ecx, dword [esp + 0xc8]
mov eax, ecx
sub eax, 5
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], eax
je 0x404a46
jmp 0x404a1a
mov eax, dword [esp + 0x40]
sub eax, 7
mov dword [esp + 0x38], eax
jne 0x404cf7
jmp 0x404a30
mov eax, dword [esp + 0xe0]
add eax, 1
mov dword [esp + 0xe0], eax
jmp 0x403f6d
mov eax, dword [0x4a9af8]
shl eax, 9
add eax, 0xc710472f
mov ecx, dword [0x4a04a8]
xor ecx, eax
mov dword [0x4a04a8], ecx
mov eax, esp
lea ecx, [esp + 0xfd]
mov dword [eax], ecx
mov dword [eax + 4], 0x13
call fcn.0041de80
mov eax, dword [0x4a1684]
mov ecx, 0xa93c5a4a
sub ecx, eax
or ecx, 0xaba18f6
mov eax, dword [0x4a8cb0]
mov edx, dword [0x4adc4c]
imul edx, edx, 0x9d66674d
sub eax, edx
cmp ecx, eax
jl 0x404ab4
mov eax, dword [0x4a07b8]
and eax, 0xed70798c
mov dword [0x4a07b8], eax
mov eax, dword [esp + 0x128]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x600
call fcn.004073a0
mov eax, dword [0x49fe24]
and eax, 0xb1bf82ea
mov dword [0x49fe24], eax
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
or eax, ecx
mov dword [esp + 0x34], eax
je 0x404c81
jmp 0x404af9
mov eax, dword [0x49ccc8]
or eax, 0xcaef2d30
mov dword [0x49ccc8], eax
mov eax, dword [0x49a124]
mov ecx, esp
mov edx, dword [esp + 0xb0]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, dword [0x4a00cc]
xor eax, 0xffffffff
cmp eax, 0xfda8ecae
jg 0x404b3f
mov eax, dword [0x49c460]
or eax, 0x70fa2728
mov dword [0x49c460], eax
movsd xmm0, qword [esp + 0x110]
movsd xmm1, qword [esp + 0x118]
mov eax, dword [esp + 0xb0]
movsd qword [eax + 0x28], xmm1
movsd qword [eax + 0x20], xmm0
mov ecx, dword [0x4a7e08]
mov edx, dword [0x4a2864]
mov esi, edx
inc esi
mov dword [0x4a2864], esi
imul edx, edx, 0x80795707
add ecx, edx
mov edx, dword [0x4a9a48]
sub edx, ecx
mov dword [0x4a9a48], edx
mov ebx, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
add eax, 0x18
mov edx, dword [esp + 0xb0]
mov esi, dword [edx + 0x18]
mov edi, dword [edx + 0x1c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
jmp 0x404bc4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov eax, ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x30]
lock cmpxchg8b qword [esi]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
jne 0x404bc4
jmp 0x404bf9
mov dword [0x49c358], 0x7f85dd78
mov eax, dword [0x49a128]
mov ecx, esp
mov edx, dword [esp + 0xb0]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, dword [0x4ae1d0]
imul eax, eax, 0xfa0cbdcb
mov dword [0x4ae1d0], eax
mov eax, dword [esp + 0x154]
movsd xmm0, qword [esp + 0x110]
movsd xmm1, qword [esp + 0x118]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov si, word [0x4b5436]
movsx eax, si
add eax, 0x1e3280fd
mov ecx, dword [0x4a199c]
sub ecx, eax
mov dword [0x4a199c], ecx
mov dword [esp + 0x14c], 1
mov eax, dword [0x49d7b4]
xor eax, 0xe7630e32
mov dword [0x49d7b4], eax
mov eax, 0x1c2a7271
mov ecx, dword [0x4ac5a0]
mov edx, ecx
inc edx
mov dword [0x4ac5a0], edx
and ecx, 0x77141e7e
cmp eax, ecx
jge 0x404cb2
mov eax, dword [0x49d5e4]
add eax, 0x4fc97394
mov dword [0x49d5e4], eax
lea ecx, [esp + 0xe8]
call fcn.0043da80
mov ax, word [0x4b07a6]
mov cx, ax
dec ecx
mov ax, cx
mov word [0x4b07a6], ax
imul ecx, ecx, 0xa9209dd7
and ecx, 0xb556
mov ax, cx
mov word [0x4b5faa], ax
mov eax, dword [esp + 0x14c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
int3