Function at 0x446140
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]
and al, 1
mov byte [esp + 0x15b], al
mov dword [esp + 0x154], edx
mov dword [esp + 0x150], ecx
mov edx, ecx
mov esi, dword [0x497d90]
and esi, 0x829e7cb5
mov dword [0x497d90], esi
mov dword [esp + 0x14c], 0
mov esi, dword [0x481288]
sar esi, 8
mov edi, dword [0x48d194]
and edi, esi
mov dword [0x48d194], edi
mov esi, esp
mov dword [esi], 0
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xac], edx
call fcn.0044f5a0
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], eax
mov bx, word [0x49e0a0]
mov ax, bx
dec eax
mov si, ax
mov word [0x49e0a0], si
movsx eax, bx
mov ecx, dword [0x485a60]
not ecx
and eax, ecx
and eax, 0x94002332
mov ecx, dword [0x497d50]
imul ecx, eax
mov dword [0x497d50], ecx
mov byte [esp + 0x13f], 0
mov eax, dword [0x489a04]
imul eax, eax, 0x405f24cc
mov dword [0x489a04], eax
mov eax, dword [0x47f0e4]
mov ecx, esp
mov edx, dword [esp + 0xb0]
mov dword [ecx], edx
call eax
sub esp, 4
mov eax, dword [0x491208]
xor eax, 0x718020c2
mov dword [0x491208], eax
test byte [esp + 0x15b], 1
je 0x446308
mov eax, dword [0x490af8]
dec eax
mov dword [0x490af8], eax
mov ecx, dword [0x4881f8]
sub ecx, eax
mov dword [0x4881f8], ecx
mov eax, dword [esp + 0xac]
add eax, 0x18
mov ecx, dword [esp + 0xac]
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 0x446295
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 0x446295
jmp 0x4462f0
mov ax, word [0x49b720]
mov cx, ax
or ecx, 0x1b72
mov ax, cx
mov word [0x49b720], ax
mov ax, word [0x49f274]
mov cx, ax
imul ecx, ecx, 0x81873b2
mov ax, cx
mov word [0x49f274], ax
xor ecx, ecx
mov eax, ecx
mov edx, ecx
mov ebx, ecx
mov esi, dword [esp + 0xac]
lock cmpxchg8b qword [esi + 0x18]
mov ecx, dword [esp + 0x140]
mov ebx, dword [esp + 0x144]
sub ecx, eax
sbb ebx, edx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], ebx
jae 0x4463c5
jmp 0x44635f
mov eax, dword [0x4940dc]
add eax, 0xd7a46a13
mov dword [0x4940dc], eax
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0xac]
mov edx, dword [ecx + 0x2c]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x28]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0x20]
mov esi, dword [ecx + 0x24]
mov dword [eax + 4], esi
mov dword [eax], edx
mov dword [0x492c9c], 0x2f1086fb
mov dword [esp + 0x14c], 1
mov eax, dword [0x48b4e0]
xor eax, 0x77571ac1
mov edx, dword [0x484408]
sub edx, eax
mov dword [0x484408], edx
jmp 0x446426
mov dword [0x481ce0], 0x69670e98
mov byte [esp + 0x13f], 1
mov eax, dword [0x49427c]
mov ecx, dword [0x486d58]
inc ecx
mov dword [0x486d58], ecx
xor eax, ecx
mov ecx, dword [0x47f340]
not ecx
mov edx, dword [0x496ef4]
add edx, 0x4b193341
xor ecx, edx
cmp eax, ecx
jne 0x446421
mov ax, word [0x49f59e]
mov cx, ax
imul ecx, ecx, 0x5206f829
mov ax, cx
mov word [0x49f59e], ax
jmp 0x446426
mov eax, dword [0x489b70]
sar eax, 5
mov cx, word [0x499cce]
movsx edx, cx
and edx, 0x49200001
cmp eax, edx
je 0x446455
mov dword [0x491ba8], 0x8e38f752
jmp 0x446479
mov eax, dword [0x493ac0]
cmp eax, 0xa73574c9
jge 0x446474
mov eax, dword [0x486f48]
add eax, 0xa7a5352e
mov dword [0x486f48], eax
jmp 0x446479
mov eax, 0xaed70ec9
mov ecx, dword [0x47f0e8]
mov edx, esp
mov esi, dword [esp + 0xac]
mov dword [edx], esi
mov dword [esp + 0x8c], eax
call ecx
sub esp, 4
mov di, word [0x49f528]
mov ax, di
inc eax
mov bx, ax
mov word [0x49f528], bx
movsx eax, di
mov ecx, dword [esp + 0x8c]
cmp ecx, eax
jl 0x4464d1
mov eax, dword [0x488ec4]
xor eax, 0xeaa1d395
mov dword [0x488ec4], eax
test byte [esp + 0x13f], 1
je 0x447658
mov eax, dword [0x488a90]
inc eax
mov dword [0x488a90], eax
mov cx, word [0x4a5294]
mov dx, cx
imul edx, eax
mov cx, dx
mov word [0x4a5294], cx
mov dword [esp + 0x134], 0
mov dword [esp + 0x130], 0
mov eax, dword [0x48fe7c]
mov edx, eax
dec edx
mov dword [0x48fe7c], edx
mov cx, word [0x4a6022]
mov dx, cx
dec edx
mov si, dx
mov word [0x4a6022], si
movsx edx, cx
imul edx, edx, 0x3febda4d
xor edx, 0xf76d5d8c
cmp eax, edx
jle 0x4465b0
mov ax, word [0x49bc28]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x49bc28], dx
movsx ecx, ax
or ecx, 0x45cc8752
cmp ecx, 0x9effee3f
jle 0x4465ab
mov ax, word [0x49db36]
mov cx, ax
dec ecx
mov dx, cx
mov word [0x49db36], dx
movsx ecx, ax
imul ecx, ecx, 0x679ae1f
or ecx, 0xd3694645
mov esi, dword [0x49155c]
add esi, ecx
mov dword [0x49155c], esi
jmp 0x4465c0
mov eax, dword [0x48b5d4]
imul eax, eax, 0x840344
mov dword [0x4961d8], eax
mov dword [esp + 0x12c], 0
mov eax, dword [0x48ed7c]
dec eax
mov dword [0x48ed7c], eax
and eax, 0x71f4b9ed
mov ecx, dword [0x483828]
and ecx, 0xfab22aed
cmp eax, ecx
jne 0x446607
mov ax, word [0x4a281e]
mov cx, ax
xor ecx, 0x2443
mov ax, cx
mov word [0x4a281e], ax
mov eax, esp
mov dword [eax + 4], 0x600
mov dword [eax], 0x15e7
call fcn.004211c0
mov dword [esp + 0x128], eax
mov eax, dword [0x4947f4]
add eax, 0xe3dfd357
mov dword [0x4947f4], eax
mov eax, dword [esp + 0x128]
mov cl, byte [eax]
mov byte [esp + 0x127], cl
mov eax, dword [0x48e3b0]
and eax, 0x52083e50
mov dx, word [0x4a1c32]
mov si, dx
inc esi
mov di, si
mov word [0x4a1c32], di
movsx esi, dx
imul esi, esi, 0xc485d678
cmp eax, esi
jg 0x446681
mov eax, dword [0x4879f8]
imul eax, eax, 0xb8c9a82e
mov dword [0x4879f8], eax
mov eax, 0x4226804
mov cx, word [0x49bef4]
movsx edx, cx
and edx, 0xfffbc29
mov dword [0x4872e8], edx
xorps xmm0, xmm0
movaps xmmword [esp + 0x110], xmm0
mov edx, dword [0x48f7e4]
add edx, 0xa9706e8f
mov esi, dword [0x48d548]
and esi, edx
mov dword [0x48d548], esi
mov word [esp + 0x110], 2
mov edx, dword [0x49616c]
and edx, 0x480c1214
mov dword [0x49616c], edx
mov edx, dword [0x493938]
dec edx
mov dword [0x493938], edx
cmp eax, edx
jge 0x44674f
mov eax, 0x51ce06ce
mov ecx, dword [0x48bd50]
dec ecx
mov dword [0x48bd50], ecx
cmp eax, ecx
je 0x446723
mov eax, dword [0x485bdc]
shl eax, 2
mov cx, ax
mov word [0x4a14f2], cx
jmp 0x44674a
mov ax, word [0x49afd4]
mov cx, ax
mov edx, dword [0x4910e4]
not edx
and ecx, edx
mov ax, word [0x49a542]
mov dx, ax
sub edx, ecx
mov ax, dx
mov word [0x49a542], ax
jmp 0x44674f
mov dword [esp + 0xfd], 0x13
mov eax, dword [0x490600]
add eax, 0x6f97ef32
xor eax, 0x26269cbf
mov ecx, dword [0x48f7cc]
imul ecx, eax
mov dword [0x48f7cc], ecx
mov dword [esp + 0x101], 0
mov dx, word [0x4a094e]
mov ax, dx
xor eax, 0xbcdc
mov dx, ax
mov word [0x4a094e], dx
mov dword [esp + 0x105], 7
mov dx, word [0x4a30e4]
mov ax, dx
xor eax, 0x909
mov dx, ax
mov word [0x4a30e4], dx
mov byte [esp + 0x109], 3
mov eax, dword [0x488e94]
mov ecx, dword [0x486b14]
add eax, ecx
mov dword [0x483154], eax
lea eax, [esp + 0xe8]
mov ecx, eax
mov dword [esp + 0x88], eax
call fcn.0044fa60
mov ecx, dword [0x488e28]
add ecx, 0xdc497eea
mov dword [0x488e28], ecx
movzx ecx, byte [esp + 0x127]
mov esi, esp
mov dword [esi], ecx
mov dword [esi + 4], 0
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x84], eax
call fcn.0044fac0
sub esp, 8
mov eax, dword [0x481eb0]
sar eax, 9
and eax, 0x83b143d3
mov ecx, dword [0x496f98]
or eax, ecx
mov ecx, dword [0x485ea0]
and ecx, eax
mov dword [0x485ea0], ecx
mov dword [esp + 0xe4], 0
mov eax, dword [esp + 0xe4]
movzx ecx, byte [esp + 0x127]
cmp eax, ecx
je 0x4468be
mov eax, dword [0x4952c0]
or eax, 0x1a460f5f
mov dword [0x4952c0], eax
mov eax, esp
lea ecx, [esp + 0xe4]
mov dword [eax], ecx
lea ecx, [esp + 0xe8]
call fcn.00439dc0
sub esp, 4
mov eax, dword [0x48d38c]
imul eax, eax, 0xcfac3ca8
mov dword [0x47f988], eax
mov eax, dword [esp + 0xe4]
add eax, 1
mov dword [esp + 0xe4], eax
jmp 0x446858
mov eax, dword [0x493044]
add eax, 0x8db6157b
mov dword [0x493044], eax
mov eax, esp
lea ecx, [esp + 0xe8]
mov dword [eax], ecx
call fcn.0044fb70
mov eax, dword [0x4827a4]
mov ecx, dword [0x497e38]
lea eax, [eax + ecx - 0x26661df2]
mov dword [0x497e38], eax
mov dword [esp + 0xe0], 0
mov eax, dword [esp + 0xe0]
movzx ecx, byte [esp + 0x127]
cmp eax, ecx
je 0x44739d
mov eax, 0xff5fdc7b
mov ecx, dword [0x48a9a4]
imul ecx, ecx, 0x4831e995
mov dword [0x48a9a4], 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.0044fc50
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 [0x48b31c]
mov ecx, eax
inc ecx
mov dword [0x48b31c], ecx
mov ecx, dword [0x4845b4]
sub ecx, eax
mov dword [0x4845b4], ecx
mov eax, dword [esp + 0xe0]
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x80]
call fcn.0044fc50
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 [0x481b60]
imul eax, eax, 0x6aa7c461
mov dword [0x481b60], eax
lea eax, [esp + 0xcc]
mov ecx, eax
mov dword [esp + 0x78], eax
call fcn.0042df90
mov ecx, dword [0x491860]
add ecx, 0x56f4aa06
mov dword [0x491860], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x10a], ecx
mov ecx, dword [0x48be54]
imul ecx, ecx, 0xced7a368
mov dword [0x48be54], ecx
mov si, word [esp + 0x112]
mov word [esp + 0x10e], si
mov ecx, dword [0x48d634]
mov edx, dword [0x487f60]
and edx, ecx
mov dword [0x487f60], edx
mov ecx, esp
lea edx, [esp + 0xfd]
mov dword [ecx], edx
mov dword [ecx + 4], 0x13
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x74], eax
call fcn.00421040
sub esp, 8
mov ecx, dword [0x497eb0]
inc ecx
mov dword [0x497eb0], ecx
and ecx, 0xf6466e5c
and ecx, 0xaeb563de
mov edx, dword [esp + 0x7c]
cmp edx, ecx
mov dword [esp + 0x70], eax
jne 0x446a8a
mov eax, dword [0x4881b4]
and eax, 0x930c93de
mov dword [0x4881b4], eax
mov eax, esp
lea ecx, [esp + 0xcc]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x110]
mov dword [eax], ecx
mov dword [eax + 0xc], 0
mov dword [eax + 8], 2
mov ecx, dword [esp + 0xac]
call fcn.0042e330
sub esp, 0x10
cmp eax, 0
jg 0x446aed
mov ax, word [0x4a0c10]
mov cx, ax
add ecx, 0x8a282027
mov ax, cx
mov word [0x4a0c10], ax
mov dword [esp + 0xc8], 7
jmp 0x447346
lea eax, [esp + 0xcc]
mov ecx, dword [0x499bd8]
and ecx, 0x3a485fec
mov dword [0x499bd8], ecx
mov ecx, eax
call fcn.0044d730
cmp eax, 0x400
ja 0x446b37
mov eax, dword [0x4839a4]
xor eax, 0xdce6353a
mov dword [0x4839a4], eax
mov dword [esp + 0xc8], 7
jmp 0x447346
lea eax, [esp + 0xcc]
mov ecx, dword [0x4830c4]
or ecx, 0xa35e6832
mov dword [0x4830c4], ecx
mov ecx, eax
call fcn.0044d730
cmp eax, 0x4000
jbe 0x446b9f
mov eax, 0x69559efc
mov cx, word [0x4a5e4a]
movsx edx, cx
imul edx, edx, 0x8e2a3bf5
cmp eax, edx
jl 0x446b8f
mov eax, dword [0x48e7a8]
imul eax, eax, 0x1bf8e3ca
mov dword [0x48e7a8], eax
mov dword [esp + 0xc8], 7
jmp 0x447346
mov eax, dword [0x496560]
imul eax, eax, 0x6f51e7aa
mov dword [0x496560], eax
lea ecx, [esp + 0xcc]
call fcn.0044f560
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 + 0x6c], eax
mov dword [esp + 0x68], ecx
jae 0x446c86
jmp 0x446be5
mov ax, word [0x4a4f22]
mov cx, ax
or ecx, 0x5ec0
mov ax, cx
mov word [0x4a4f22], ax
mov ecx, dword [esp + 0x12c]
inc ecx
mov dword [esp + 0x12c], ecx
mov ecx, dword [0x4811b4]
xor ecx, 0xadcdc38d
mov dword [0x4811b4], ecx
cmp dword [esp + 0x12c], 3
jne 0x446c67
mov ax, word [0x4a38aa]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4a38aa], dx
movsx ecx, ax
or ecx, 0xe5dfde3f
mov esi, dword [0x4825f0]
xor esi, ecx
mov dword [0x4825f0], esi
mov dword [esp + 0xc8], 5
jmp 0x447346
mov eax, dword [0x484658]
add eax, 0x5b9bf347
mov dword [0x484658], eax
mov dword [esp + 0xc8], 7
jmp 0x447346
mov eax, 0xc7419b75
mov ecx, dword [0x488acc]
mov edx, ecx
dec edx
mov dword [0x488acc], edx
or ecx, 0x8fcd55b2
mov edx, dword [0x48dd28]
sub edx, ecx
mov dword [0x48dd28], edx
mov dword [esp + 0x12c], 0
mov si, word [0x4a5fbc]
mov cx, si
inc ecx
mov di, cx
mov word [0x4a5fbc], di
movsx ecx, si
cmp eax, ecx
jge 0x446d05
mov ax, word [0x4a5632]
movsx ecx, ax
add ecx, 0xa0676664
mov edx, dword [0x496bcc]
inc edx
mov dword [0x496bcc], edx
and ecx, edx
mov edx, dword [0x497470]
add edx, ecx
mov dword [0x497470], edx
lea eax, [esp + 0xcc]
lea ecx, [esp + 0xcc]
mov dword [esp + 0x64], eax
call fcn.0044f560
movzx eax, word [eax + 8]
mov dword [esp + 0xc4], eax
mov dx, word [0x4a274a]
mov ax, dx
imul eax, eax, 0x18f6e433
mov dx, ax
mov word [0x4a274a], dx
imul eax, dword [esp + 0xc4], 6
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x60], eax
call fcn.0044d730
sub eax, 0x400
sub eax, 0xa
mov ecx, dword [esp + 0x60]
cmp ecx, eax
jbe 0x446dc1
mov ax, word [0x49b388]
movsx ecx, ax
mov edx, dword [0x48e094]
imul edx, edx, 0x10cd2201
mov esi, dword [0x481e58]
sar esi, 2
xor edx, esi
cmp ecx, edx
jge 0x446db1
mov eax, dword [0x4983c8]
not eax
add eax, 0x59dd335e
and eax, 0xe4ef9adc
mov ecx, dword [0x49371c]
xor ecx, eax
mov dword [0x49371c], ecx
mov dword [esp + 0xc8], 7
jmp 0x447346
mov eax, dword [0x48a60c]
add eax, 0xefe7b977
mov dword [0x48a60c], eax
mov byte [esp + 0xc3], 0
mov cx, word [0x4a05bc]
mov ax, cx
add eax, 0x6fbdec30
mov cx, ax
mov word [0x4a05bc], cx
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0xbc]
cmp eax, dword [esp + 0xc4]
je 0x446ff3
lea eax, [esp + 0xcc]
mov ecx, dword [0x4865c4]
add ecx, 0x7902eb6f
mov dword [0x4865c4], ecx
mov ecx, dword [esp + 0x114]
imul edx, dword [esp + 0xbc], 6
add edx, 0xa
mov dword [esp + 0x5c], ecx
mov ecx, eax
mov dword [esp + 0x58], edx
call fcn.0044f560
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
cmp ecx, dword [eax + edx]
jne 0x446f16
lea eax, [esp + 0xcc]
mov ecx, dword [0x48aae4]
add ecx, 0x49ecef0d
mov dword [0x48aae4], ecx
movzx ecx, word [esp + 0x112]
imul edx, dword [esp + 0xbc], 6
add edx, 0xa
mov dword [esp + 0x54], ecx
mov ecx, eax
mov dword [esp + 0x50], edx
call fcn.0044f560
mov ecx, dword [esp + 0x50]
movzx eax, word [eax + ecx + 4]
mov edx, dword [esp + 0x54]
cmp edx, eax
jne 0x446f07
mov eax, 0x32c21901
mov ecx, dword [0x4812c0]
and ecx, 0xd18ce20f
cmp eax, ecx
je 0x446ed9
mov eax, dword [0x497e74]
imul eax, eax, 0xb255d540
mov dword [0x497e74], eax
jmp 0x446ef1
mov ax, word [0x4a6182]
mov cx, ax
add ecx, 0x5b7d12b9
mov ax, cx
mov word [0x4a6182], ax
mov byte [esp + 0xc3], 1
mov word [0x4a40b8], 0xf218
jmp 0x446ff3
mov eax, dword [0x48fa80]
or eax, 0xc51fad76
mov dword [0x48fa80], eax
mov eax, 0x5c5fefdc
mov cx, word [0x4a23e8]
mov dx, cx
inc edx
mov si, dx
mov word [0x4a23e8], si
movsx edx, cx
mov edi, dword [0x480134]
or edx, edi
cmp eax, edx
jl 0x446f79
mov ax, word [0x4a38d8]
mov cx, ax
inc ecx
mov dx, cx
mov word [0x4a38d8], dx
movsx ecx, ax
add ecx, 0x757ce68f
xor ecx, 0x7a9373df
mov esi, dword [0x48b540]
or esi, ecx
mov dword [0x48b540], esi
jmp 0x446fd8
mov eax, 0x99b2e0c
mov ecx, dword [0x4975bc]
mov edx, ecx
dec edx
mov dword [0x4975bc], edx
mov edx, dword [0x48c7c4]
mov esi, edx
inc esi
mov dword [0x48c7c4], esi
imul ecx, edx
cmp eax, ecx
jl 0x446fc4
mov ax, word [0x4a1c32]
mov cx, ax
imul ecx, ecx, 0xa528888e
mov ax, cx
mov word [0x4a1c32], ax
jmp 0x446fd3
mov eax, dword [0x48004c]
and eax, 0x68d9ef96
mov dword [0x48004c], eax
jmp 0x446fd8
jmp 0x446fdd
mov eax, dword [esp + 0xbc]
add eax, 1
mov dword [esp + 0xbc], eax
jmp 0x446dfc
mov dword [0x48da54], 0xcee799e4
test byte [esp + 0xc3], 1
jne 0x447033
mov ax, word [0x4a1b22]
mov cx, ax
add ecx, 0x5b057439
mov ax, cx
mov word [0x4a1b22], ax
mov dword [esp + 0xc8], 7
jmp 0x447346
mov eax, 0x7c7d869e
mov ecx, dword [0x481838]
add ecx, 0x7100f4f1
mov dword [0x481838], ecx
mov ecx, esp
mov dword [ecx + 4], 0x408
mov dword [ecx], 0x3027
mov dword [esp + 0x4c], eax
call fcn.004211c0
mov dword [esp + 0xb8], eax
mov dx, word [0x4a180a]
mov ax, dx
inc eax
mov dx, ax
mov word [0x4a180a], dx
movsx eax, dx
mov ecx, dword [0x494598]
sub ecx, eax
mov dword [0x494598], ecx
lea eax, [esp + 0xcc]
mov ecx, eax
mov dword [esp + 0x48], eax
call fcn.0044d730
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x44], eax
call fcn.0044f560
mov ecx, dword [esp + 0xb8]
mov esi, esp
mov edi, dword [esp + 0x44]
mov dword [esi + 8], edi
mov dword [esi + 4], eax
mov dword [esi], ecx
call fcn.0041d6e0
mov dword [esp + 0xb4], eax
mov eax, dword [0x4863cc]
inc eax
mov dword [0x4863cc], eax
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
jle 0x447103
mov ax, word [0x4a16a0]
movsx ecx, ax
mov edx, dword [0x480f9c]
xor ecx, edx
xor ecx, 0x6b7fbdd8
mov dword [0x480f9c], ecx
mov eax, dword [esp + 0xb8]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x408
call fcn.0040b750
mov dx, word [0x4a4588]
mov ax, dx
dec eax
mov si, ax
mov word [0x4a4588], si
movsx eax, dx
or eax, 0x5b7c7295
and eax, 0x7b7d7fff
mov ecx, dword [0x48276c]
sub ecx, eax
mov dword [0x48276c], ecx
cmp dword [esp + 0xb4], 4
jle 0x44717d
lea eax, [esp + 0xcc]
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x40], ecx
mov ecx, eax
call fcn.0044d730
mov ecx, dword [esp + 0x40]
cmp ecx, eax
jbe 0x4471bc
mov ax, word [0x49d61c]
mov cx, ax
add ecx, 0x21038d1
mov ax, cx
mov word [0x49d61c], ax
mov dword [esp + 0xb4], 0
mov ecx, dword [0x499790]
sar ecx, 4
mov edx, dword [0x4849ac]
sub edx, ecx
mov dword [0x4849ac], edx
jmp 0x4471f7
mov eax, dword [0x4983e8]
imul eax, eax, 0x19312429
mov dword [0x4983e8], eax
mov eax, dword [esp + 0xb4]
add eax, 0xfffffffc
mov dword [esp + 0xb4], eax
mov cx, word [0x49d060]
mov ax, cx
imul eax, eax, 0x831e9fdc
mov cx, ax
mov word [0x49d060], cx
mov eax, 0x44c82919
mov ecx, dword [0x495da0]
mov edx, ecx
dec edx
mov dword [0x495da0], edx
add ecx, 0xe2251b08
cmp eax, ecx
jge 0x447260
mov eax, dword [0x493190]
add eax, 0x36051272
mov ecx, dword [0x48ed1c]
xor ecx, 0x421f83e6
mov dx, word [0x4a58ce]
movsx esi, dx
xor ecx, esi
cmp eax, ecx
je 0x44725b
mov eax, dword [0x48734c]
xor eax, 0x28d43076
mov ecx, dword [0x48a9d0]
and ecx, eax
mov dword [0x48a9d0], ecx
jmp 0x447278
mov ax, word [0x49e476]
mov cx, ax
add ecx, 0x6a54b39d
mov ax, cx
mov word [0x49e476], ax
mov eax, dword [esp + 0xb4]
imul ecx, dword [esp + 0xc4], 6
add ecx, 0xa
cmp eax, ecx
jge 0x4472cd
mov eax, dword [0x484a84]
dec eax
mov dword [0x484a84], eax
xor eax, 0x1102
or eax, 0xee7c
mov cx, word [0x4a273a]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4a273a], cx
mov dword [esp + 0xc8], 7
jmp 0x447346
mov eax, 0x82eb9842
mov ecx, dword [0x494be8]
cmp eax, ecx
jl 0x4472f0
mov eax, dword [0x4851a0]
imul eax, eax, 0x580201
mov dword [0x4851a0], eax
lea ecx, [esp + 0xcc]
call fcn.0044f560
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x134], eax
mov dword [esp + 0x130], ecx
mov dx, word [0x4a3c9c]
mov ax, dx
dec eax
mov si, ax
mov word [0x4a3c9c], si
movsx eax, dx
add eax, 0xb7276f99
mov ecx, dword [0x48a3b8]
imul ecx, eax
mov dword [0x48a3b8], ecx
mov dword [esp + 0xc8], 5
lea ecx, [esp + 0xcc]
call fcn.0044f4e0
mov ecx, dword [esp + 0xc8]
mov eax, ecx
sub eax, 5
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], eax
je 0x44739d
jmp 0x447371
mov eax, dword [esp + 0x3c]
sub eax, 7
mov dword [esp + 0x34], eax
jne 0x447690
jmp 0x447387
mov eax, dword [esp + 0xe0]
add eax, 1
mov dword [esp + 0xe0], eax
jmp 0x4468ff
mov eax, 0x84631a78
mov cx, word [0x4a1852]
mov dx, cx
add edx, 0xdfdeb7ca
mov cx, dx
mov word [0x4a1852], cx
mov edx, esp
lea esi, [esp + 0xfd]
mov dword [edx], esi
mov dword [edx + 4], 0x13
mov dword [esp + 0x30], eax
call fcn.0043d0b0
mov eax, dword [0x484548]
imul eax, eax, 0xf5e2cb06
add eax, 0x951dbe58
mov edx, dword [esp + 0x30]
cmp edx, eax
jne 0x44741f
mov eax, dword [0x49179c]
mov ecx, eax
dec ecx
mov dword [0x49179c], ecx
mov ecx, dword [0x497834]
xor eax, ecx
mov dx, word [0x4a248c]
mov cx, dx
add ecx, eax
mov dx, cx
mov word [0x4a248c], dx
mov eax, dword [esp + 0x128]
mov ecx, esp
mov dword [ecx + 4], eax
mov dword [ecx], 0x600
call fcn.0040b750
mov eax, dword [0x489974]
imul eax, eax, 0xc12c9bf3
mov ecx, dword [0x493c44]
sar ecx, 2
add eax, ecx
mov dword [0x498264], eax
mov eax, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
or eax, ecx
mov dword [esp + 0x2c], eax
je 0x44763d
jmp 0x447470
mov eax, dword [0x499028]
xor eax, 0xff752b48
mov ecx, dword [0x48f258]
imul ecx, eax
mov dword [0x48f258], ecx
mov eax, dword [0x47f0e4]
mov ecx, esp
mov edx, dword [esp + 0xac]
mov dword [ecx], edx
call eax
sub esp, 4
mov si, word [0x4a4ef6]
mov ax, si
mov ecx, eax
dec ecx
mov si, cx
mov word [0x4a4ef6], si
imul eax, eax, 0x2c960a18
mov si, word [0x4a5dd2]
mov cx, si
and ecx, eax
mov si, cx
mov word [0x4a5dd2], si
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0xac]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x118]
mov dword [ecx + 0x28], eax
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
mov dword [ecx + 0x24], edx
mov dword [ecx + 0x20], eax
mov eax, dword [0x48c638]
mov edx, dword [0x4937ac]
shr edx, 5
lea eax, [eax + edx + 0x2a3d5dd4]
mov si, word [0x49f1be]
mov dx, si
xor edx, eax
mov si, dx
mov word [0x49f1be], si
mov ebx, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov eax, dword [esp + 0xac]
add eax, 0x18
mov edx, dword [esp + 0xac]
mov edi, dword [edx + 0x18]
mov edx, dword [edx + 0x1c]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edx
jmp 0x447569
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
mov eax, ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
lock cmpxchg8b qword [esi]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], edx
jne 0x447569
jmp 0x44759e
mov eax, dword [0x48055c]
mov ecx, dword [0x490660]
add eax, ecx
mov ecx, dword [0x480d78]
sub ecx, eax
mov dword [0x480d78], ecx
mov eax, dword [0x47f0e8]
mov ecx, esp
mov edx, dword [esp + 0xac]
mov dword [ecx], edx
call eax
sub esp, 4
mov si, word [0x4a0798]
movsx eax, si
mov ecx, dword [0x493bb8]
and ecx, eax
mov dword [0x493bb8], ecx
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x11c]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x118]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x114]
mov dword [eax + 4], edx
mov dword [eax], ecx
mov eax, dword [0x483cd4]
and eax, 0xe8dd0935
mov dword [0x483cd4], eax
mov dword [esp + 0x14c], 1
mov eax, dword [0x48b5e8]
add eax, 0xf98a7f6f
mov dword [0x48b5e8], eax
mov eax, dword [0x498d34]
or eax, 0xb512a7ce
mov dword [0x498d34], eax
lea ecx, [esp + 0xe8]
call fcn.0044fc00
mov eax, dword [0x487ad0]
mov ecx, eax
inc ecx
mov dword [0x487ad0], ecx
imul eax, eax, 0x486f172a
mov ecx, 0x5c2bccde
sub ecx, eax
mov eax, dword [0x486924]
xor eax, ecx
mov dword [0x486924], eax
mov eax, dword [esp + 0x14c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
push ebx
push esi
sub esp, 0x1c
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
lea esi, [esp + 0xf]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x18]
mov bl, byte [eax]
mov byte [esp + 0xf], bl
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.0044f1c0
add esp, 0x1c
pop esi
pop ebx
ret