Function at 0x452322
Capabilities:
Get common file path

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xffffffe0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x550c35
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x868
push esi
mov esi, ecx
mov byte [ebp - 0x31], dl
mov dword [ebp - 0x58], esi
push edi
mov dword [ebp - 0x24], 1
mov dword [ebp - 4], 1
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x878]
push 0x104
push 0
push eax
mov dword [ebp - 0x24], 1
call fcn.005256f0
add esp, 0xc
lea eax, [ebp - 0x878]
push eax
movzx eax, byte [ebp - 0x31]
xor eax, 1
push 0
push 0
lea eax, [eax*2 + 0x1a]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
lea eax, [ebx + 0xc]
push eax
lea edx, [ebp - 0x878]
lea ecx, [ebp - 0x94]
call fcn.004b5380
add esp, 4
mov dword [ebp - 4], 3
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 4], 4
cmp byte [ebx + 8], 0
jne 0x452800
sub esp, 0x18
lea eax, [ebp - 0x94]
mov ecx, esp
mov dword [ebp - 0x44], esp
push eax
call fcn.004b0ec0
mov byte [ebp - 4], 5
push 0
mov byte [ebp - 4], 4
mov dl, 1
lea ecx, [ebp - 0x7c]
call fcn.00439b60
add esp, 0x1c
mov byte [ebp - 4], 6
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
sub ecx, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4524f3
mov dword [ebp - 0x24], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7c]
call fcn.004b2e00
mov byte [ebp - 4], 3
mov edi, dword [ebp - 0x40]
test edi, edi
je 0x4524b1
mov eax, dword [ebp - 0x3c]
cmp edi, eax
je 0x452458
mov esi, eax
mov ecx, edi
call fcn.0040fe60
add edi, 0x18
cmp edi, esi
jne 0x452444
mov edi, dword [ebp - 0x40]
mov esi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x38]
mov eax, 0x2aaaaaab
sub ecx, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea ecx, [eax + eax*2]
mov eax, edi
shl ecx, 3
cmp ecx, 0x1000
jb 0x452492
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x454497
push ecx
push edi
call fcn.0050d4b1
add esp, 8
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x94]
call fcn.0040fe60
mov dword [ebp - 4], 0
lea ecx, [ebx + 0xc]
call fcn.0040fe60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x24]
call fcn.0040fe60
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
xor ecx, ecx
mov dword [ebp - 0x50], ecx
test eax, eax
je 0x4527ef
xor esi, esi
mov dword [ebp - 0x48], esi
nop word [eax + eax]
mov dword [ebp - 0x30], 0x5544fc53
add edi, esi
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x2d0], eax
mov dword [ebp - 0x2cc], ecx
mov dword [ebp - 0xb0], 0xaf4b4030
mov dword [ebp - 0xac], 0xbe0aaf25
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ebp - 0xac]
mov dword [ebp - 0x2c8], eax
mov dword [ebp - 0x2c4], ecx
mov dword [ebp - 0xa8], 0x5544fc0f
mov dword [ebp - 0xa4], 0xd280d90
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0xa0], 0xaf4b4030
mov dword [ebp - 0x510], eax
mov dword [ebp - 0x9c], 0xbe0aaf25
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0x50c], ecx
mov ecx, dword [ebp - 0x9c]
movaps xmm1, xmmword [ebp - 0x2d0]
mov dword [ebp - 0x508], eax
mov dword [ebp - 0x504], ecx
pxor xmm1, xmmword [ebp - 0x510]
movaps xmmword [ebp - 0x2d0], xmm1
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x2d0]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4525e0
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x84]
sub eax, edx
cmp eax, ecx
jb 0x45449c
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
push ecx
cmovae eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x2d0]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x44]
lea ecx, [ebp - 0x6b0]
call fcn.004b92d0
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x6b0]
sub esp, 0x18
or esi, 0x40000
mov dword [ebp - 0x24], esi
mov ecx, esp
mov dword [ebp - 0x60], esp
push edi
call fcn.004b54b0
add esp, 4
mov byte [ebp - 4], 8
push 0
mov byte [ebp - 4], 7
xor dl, dl
lea ecx, [ebp - 0xd4]
call fcn.00439b60
add esp, 0x1c
mov byte [ebp - 4], 9
and esi, 0xfffbffff
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x6b0]
call fcn.0040fe60
mov ecx, dword [ebp - 0xd0]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xd4]
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4527b2
mov dword [ebp - 0x54], 0
test eax, eax
je 0x4527b2
xor eax, eax
mov dword [ebp - 0x4c], eax
nop word [eax + eax]
cmp dword [ebx + 0x38], 0x10
lea ecx, [esi + eax]
mov edx, dword [ecx + 0x10]
lea eax, [ebx + 0x24]
cmovae eax, dword [ebx + 0x24]
cmp dword [ecx + 0x14], 0x10
jb 0x4526d9
mov ecx, dword [ecx]
push dword [ebx + 0x34]
push eax
push 0
call fcn.004b6b40
add esp, 0xc
cmp eax, 0xffffffff
je 0x452779
mov ecx, dword [ebp - 0x3c]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0x40]
xor edi, edi
sub ecx, esi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x44], eax
je 0x452754
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x7c]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ecx + 0x10]
nop dword [eax]
cmp dword [ecx + 0x14], 0x10
mov eax, ecx
jb 0x45272a
mov eax, dword [ecx]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
jb 0x452734
mov ecx, dword [esi]
push edx
mov edx, dword [esi + 0x10]
push eax
call fcn.004c15e0
add esp, 8
test al, al
jne 0x452779
mov ecx, dword [ebp - 0x5c]
inc edi
add esi, 0x18
mov edx, dword [ecx + 0x10]
cmp edi, dword [ebp - 0x44]
jb 0x452720
mov ecx, dword [ebp - 0x48]
add ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x3c]
push ecx
cmp eax, dword [ebp - 0x38]
je 0x452770
mov ecx, eax
call fcn.004b0ec0
add dword [ebp - 0x3c], 0x18
jmp 0x452779
push eax
lea ecx, [ebp - 0x40]
call fcn.004be560
mov ecx, dword [ebp - 0xd0]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0xd4]
mov esi, dword [ebp - 0x54]
add dword [ebp - 0x4c], 0x18
inc esi
imul ecx
mov dword [ebp - 0x54], esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
mov esi, dword [ebp - 0xd4]
mov eax, dword [ebp - 0x4c]
jb 0x4526c0
mov byte [ebp - 4], 6
lea ecx, [ebp - 0xd4]
call fcn.004b2e00
mov ecx, dword [ebp - 0x78]
mov eax, 0x2aaaaaab
mov edi, dword [ebp - 0x7c]
sub ecx, edi
mov esi, dword [ebp - 0x48]
inc dword [ebp - 0x50]
add esi, 0x18
imul ecx
mov dword [ebp - 0x48], esi
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x50], eax
jb 0x452510
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x7c]
call fcn.004b2e00
jmp 0x4528a8
xorps xmm0, xmm0
mov dword [ebp - 0x348], 0
movups xmmword [ebp - 0x358], xmm0
mov dword [ebp - 0x344], 0
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], 0
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x358]
push eax
push dword [ebp - 0x3c]
lea ecx, [ebp - 0x40]
call fcn.004be3b0
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x344]
cmp ecx, 0x10
jb 0x45288d
mov edx, dword [ebp - 0x358]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x452883
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4544a1
push ecx
push edx
call fcn.0050d4b1
add esp, 8
mov dword [ebp - 0x348], 0
mov dword [ebp - 0x344], 0xf
mov byte [ebp - 0x358], 0
mov ecx, dword [ebp - 0x3c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x40]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x452954
xorps xmm0, xmm0
mov dword [ebp - 0xf4], eax
movups xmmword [ebp - 0x104], xmm0
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf4], eax
mov dword [ebp - 0xf0], 0xf
mov byte [ebp - 0x104], al
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x3c]
cmp eax, dword [ebp - 0x38]
je 0x452935
movups xmm0, xmmword [ebp - 0x104]
mov byte [ebp - 0x104], 0
movups xmmword [eax], xmm0
movq xmm0, qword [ebp - 0xf4]
movq qword [eax + 0x10], xmm0
add dword [ebp - 0x3c], 0x18
mov dword [ebp - 0xf4], 0
mov dword [ebp - 0xf0], 0xf
jmp 0x452945
lea ecx, [ebp - 0x104]
push ecx
push eax
lea ecx, [ebp - 0x40]
call fcn.004be3b0
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x104]
call fcn.0040fe60
mov dword [ebp - 0x30], 0x362bb053
lea edx, [ebp - 0x94]
mov dword [ebp - 0x2c], 0x5e0861f1
sub esp, 0x18
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x440], eax
mov dword [ebp - 0x43c], ecx
mov dword [ebp - 0x30], 0xca3f2144
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x438], eax
mov dword [ebp - 0x434], ecx
mov dword [ebp - 0x30], 0x5544fc0f
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x520], eax
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x51c], ecx
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movaps xmm1, xmmword [ebp - 0x440]
mov dword [ebp - 0x518], eax
lea eax, [ebp - 0x440]
mov dword [ebp - 0x514], ecx
mov ecx, esp
pxor xmm1, xmmword [ebp - 0x520]
mov dword [ebp - 0x60], esp
push eax
movaps xmmword [ebp - 0x440], xmm1
call fcn.004b5250
add esp, 4
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x698]
call fcn.00419c20
add esp, 0x18
mov byte [ebp - 4], 0xe
xorps xmm0, xmm0
movups xmmword [ebp - 0xec], xmm0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0xf
mov byte [ebp - 0xec], 0
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x688], 0
je 0x452f3f
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x60], esp
mov dword [ebp - 0x44], eax
mov dword [eax + 0x24], 0
mov byte [ebp - 4], 0x11
push 0
push 1
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x698]
lea ecx, [ebp - 0x498]
call fcn.004b5880
add esp, 0x30
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x30], 0x361b8f60
mov dword [ebp - 0x2c], 0x795874e2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x430], eax
mov dword [ebp - 0x42c], ecx
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], ecx
mov dword [ebp - 0x30], 0x5544fc0f
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x530], eax
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x52c], ecx
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movaps xmm1, xmmword [ebp - 0x430]
mov dword [ebp - 0x528], eax
lea eax, [ebp - 0x430]
mov dword [ebp - 0x524], ecx
lea ecx, [ebp - 0x498]
pxor xmm1, xmmword [ebp - 0x530]
push eax
movaps xmmword [ebp - 0x430], xmm1
call fcn.004b55b0
cmp byte [eax], 0
je 0x452f25
mov dword [ebp - 0x30], 0x361b8f60
mov dword [ebp - 0x2c], 0x795874e2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x410], eax
mov dword [ebp - 0x40c], ecx
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x404], ecx
mov dword [ebp - 0x30], 0x5544fc0f
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x540], eax
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x53c], ecx
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movaps xmm1, xmmword [ebp - 0x410]
mov dword [ebp - 0x538], eax
lea eax, [ebp - 0x410]
mov dword [ebp - 0x534], ecx
lea ecx, [ebp - 0x498]
pxor xmm1, xmmword [ebp - 0x540]
push eax
movaps xmmword [ebp - 0x410], xmm1
call fcn.004b55b0
mov dword [ebp - 0x30], 0x2727926a
mov esi, eax
mov dword [ebp - 0x2c], 0x685c7de9
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x420], ecx
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x30], 0xca201f54
mov dword [ebp - 0x2c], 0xbe0aaf5c
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x418], ecx
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x30], 0x5544fc0f
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x550], eax
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x54c], ecx
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movaps xmm1, xmmword [ebp - 0x420]
mov dword [ebp - 0x548], eax
lea eax, [ebp - 0x420]
mov dword [ebp - 0x544], ecx
mov ecx, esi
pxor xmm1, xmmword [ebp - 0x550]
push eax
movaps xmmword [ebp - 0x420], xmm1
call fcn.004b55b0
cmp byte [eax], 0
je 0x452f25
mov dword [ebp - 0x30], 0x361b8f60
mov dword [ebp - 0x2c], 0x795874e2
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x380], eax
mov dword [ebp - 0x37c], ecx
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x378], eax
mov dword [ebp - 0x374], ecx
mov dword [ebp - 0x30], 0x5544fc0f
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x560], eax
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x55c], ecx
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movaps xmm1, xmmword [ebp - 0x380]
mov dword [ebp - 0x558], eax
lea eax, [ebp - 0x380]
mov dword [ebp - 0x554], ecx
lea ecx, [ebp - 0x498]
pxor xmm1, xmmword [ebp - 0x560]
push eax
movaps xmmword [ebp - 0x380], xmm1
call fcn.004b55b0
mov dword [ebp - 0x30], 0x2727926a
mov esi, eax
mov dword [ebp - 0x2c], 0x685c7de9
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov dword [ebp - 0x390], ecx
mov dword [ebp - 0x38c], edx
mov dword [ebp - 0x30], 0xca201f54
mov dword [ebp - 0x2c], 0xbe0aaf5c
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x384], eax
mov dword [ebp - 0x30], 0x5544fc0f
mov dword [ebp - 0x2c], 0xd280d90
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x570], eax
mov dword [ebp - 0x30], 0xaf4b4030
mov dword [ebp - 0x56c], ecx
mov dword [ebp - 0x2c], 0xbe0aaf25
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x2c]
movaps xmm1, xmmword [ebp - 0x390]
mov dword [ebp - 0x568], eax
lea eax, [ebp - 0x390]
mov dword [ebp - 0x564], ecx
mov ecx, esi
pxor xmm1, xmmword [ebp - 0x570]
push eax
movaps xmmword [ebp - 0x390], xmm1
call fcn.004b55b0
mov byte [ebp - 4], 0x13
xorps xmm0, xmm0
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x11c]
movups xmmword [ebp - 0x11c], xmm0
mov dword [ebp - 0x10c], 0
or esi, 0x200000
mov dword [ebp - 0x108], 0
mov ecx, eax
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0xf
mov byte [ebp - 0x11c], 0
mov dword [ebp - 0x24], esi
call fcn.004c6dc0
lea edx, [ebp - 0x11c]
lea ecx, [ebp - 0x728]
call fcn.0040fc20
mov edi, eax
mov byte [ebp - 4], 0x14
lea eax, [ebp - 0xec]
cmp eax, edi
je 0x452e9d
mov ecx, eax
call fcn.0040fe60
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0xec], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0xdc], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x728]
call fcn.0040fe60
and esi, 0xffdfffff
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x108]
cmp ecx, 0x10
jb 0x452ef3
mov edx, dword [ebp - 0x11c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x452ee9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4544a6
push ecx
push edx
call fcn.0050d4b1
add esp, 8
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x108], 0xf
mov byte [ebp - 0x11c], 0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x490]
push dword [ebp - 0x498]
call fcn.004b2480
jmp 0x452f42
mov esi, dword [ebp - 0x24]
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x490]
push dword [ebp - 0x498]
call fcn.004b2480
jmp 0x452f42
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x40]
imul ecx
mov dword [ebp - 0x44], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x454423
xor edi, edi
mov dword [ebp - 0x4c], edi
nop dword [eax + eax]
cmp byte [ebx + 8], 0
je 0x452fc4
xorps xmm0, xmm0
mov dword [ebp - 0x4e8], 0
movups xmmword [ebp - 0x4f8], xmm0
mov dword [ebp - 0x4e4], 0
mov dword [ebp - 0x4e8], 0
mov dword [ebp - 0x4e4], 0xf
mov byte [ebp - 0x4f8], 0
lea edi, [ebp - 0x4f8]
mov byte [ebp - 4], 0x15
or esi, 2
mov dword [ebp - 0x24], esi
jmp 0x4530b2
mov dword [ebp - 0x318], 0x362bb053
mov dword [ebp - 0x314], 0x5e0861f1
mov eax, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x314]
mov dword [ebp - 0x3a0], eax
mov dword [ebp - 0x39c], ecx
mov dword [ebp - 0x320], 0xca3f2144
mov dword [ebp - 0x31c], 0xbe0aaf25
mov eax, dword [ebp - 0x320]
mov ecx, dword [ebp - 0x31c]
mov dword [ebp - 0x398], eax
mov dword [ebp - 0x394], ecx
mov dword [ebp - 0x328], 0x5544fc0f
mov dword [ebp - 0x324], 0xd280d90
mov eax, dword [ebp - 0x328]
mov ecx, dword [ebp - 0x324]
mov dword [ebp - 0x580], eax
mov dword [ebp - 0x330], 0xaf4b4030
mov dword [ebp - 0x57c], ecx
mov dword [ebp - 0x32c], 0xbe0aaf25
mov eax, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x32c]
mov edx, dword [ebp - 0x40]
movaps xmm1, xmmword [ebp - 0x3a0]
mov dword [ebp - 0x578], eax
lea eax, [ebp - 0x3a0]
mov dword [ebp - 0x574], ecx
lea ecx, [ebp - 0x740]
pxor xmm1, xmmword [ebp - 0x580]
lea edx, [edx + edi]
push eax
movaps xmmword [ebp - 0x3a0], xmm1
call fcn.004b5250
add esp, 4
mov edi, eax
mov dword [ebp - 4], 0x16
or dword [ebp - 0x24], 4
mov dword [ebp - 0x338], 0x5544fc53
mov dword [ebp - 0x334], 0xd280d90
mov ecx, dword [ebp - 0x338]
mov edx, dword [ebp - 0x334]
mov dword [ebp - 0x2e0], ecx
mov dword [ebp - 0x2dc], edx
mov dword [ebp - 0x340], 0xaf4b4030
mov dword [ebp - 0x33c], 0xbe0aaf25
mov eax, dword [ebp - 0x340]
mov ecx, dword [ebp - 0x33c]
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2d4], ecx
mov dword [ebp - 0x140], 0x5544fc0f
mov dword [ebp - 0x13c], 0xd280d90
mov eax, dword [ebp - 0x140]
mov ecx, dword [ebp - 0x13c]
mov dword [ebp - 0x148], 0xaf4b4030
mov dword [ebp - 0x590], eax
mov dword [ebp - 0x144], 0xbe0aaf25
mov eax, dword [ebp - 0x148]
mov dword [ebp - 0x58c], ecx
mov ecx, dword [ebp - 0x144]
movaps xmm1, xmmword [ebp - 0x2e0]
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x584], ecx
pxor xmm1, xmmword [ebp - 0x590]
movaps xmmword [ebp - 0x2e0], xmm1
mov dword [ebp - 4], 0x17
lea ecx, [ebp - 0x2e0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x453188
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x84]
sub eax, edx
cmp eax, ecx
jb 0x45449c
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
push ecx
cmovae eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x2e0]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x60]
lea ecx, [ebp - 0x6c8]
call fcn.004b92d0
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x6c8]
sub esp, 0x18
or esi, 0x1000
mov dword [ebp - 0x24], esi
mov ecx, esp
mov dword [ebp - 0x60], esp
push edi
call fcn.004b5550
add esp, 4
mov byte [ebp - 4], 0x18
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x680]
call fcn.00419c20
add esp, 0x18
mov byte [ebp - 4], 0x19
and esi, 0xffffefff
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x1a
lea ecx, [ebp - 0x6c8]
call fcn.0040fe60
mov byte [ebp - 4], 0x1b
mov eax, esi
test al, 4
je 0x453243
and eax, 0xfffffffb
lea ecx, [ebp - 0x740]
mov dword [ebp - 0x24], eax
call fcn.0040fe60
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 0x1c
test al, 2
je 0x45325c
and eax, 0xfffffffd
lea ecx, [ebp - 0x4f8]
mov dword [ebp - 0x24], eax
call fcn.0040fe60
xorps xmm0, xmm0
mov dword [ebp - 0xb8], 0
movups xmmword [ebp - 0xc8], xmm0
mov dword [ebp - 0xb4], 0
mov dword [ebp - 0xb8], 0
mov dword [ebp - 0xb4], 0xf
mov byte [ebp - 0xc8], 0
mov byte [ebp - 4], 0x1d
cmp dword [ebp - 0x670], 0
je 0x453890
cmp dword [ebp - 0xdc], 0
jne 0x453890
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x648], esp
mov dword [ebp - 0x64], eax
mov dword [eax + 0x24], 0
mov byte [ebp - 4], 0x1f
push 0
push 1
mov byte [ebp - 4], 0x1d
lea edx, [ebp - 0x680]
lea ecx, [ebp - 0x4a8]
call fcn.004b5880
add esp, 0x30
mov byte [ebp - 4], 0x20
mov dword [ebp - 0x150], 0x361b8f60
mov dword [ebp - 0x14c], 0x795874e2
mov eax, dword [ebp - 0x150]
mov ecx, dword [ebp - 0x14c]
mov dword [ebp - 0x3b0], eax
mov dword [ebp - 0x3ac], ecx
mov dword [ebp - 0x158], 0xaf4b4030
mov dword [ebp - 0x154], 0xbe0aaf25
mov eax, dword [ebp - 0x158]
mov ecx, dword [ebp - 0x154]
mov dword [ebp - 0x3a8], eax
mov dword [ebp - 0x3a4], ecx
mov dword [ebp - 0x160], 0x5544fc0f
mov dword [ebp - 0x15c], 0xd280d90
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x5a0], eax
mov dword [ebp - 0x168], 0xaf4b4030
mov dword [ebp - 0x59c], ecx
mov dword [ebp - 0x164], 0xbe0aaf25
mov eax, dword [ebp - 0x168]
mov ecx, dword [ebp - 0x164]
movaps xmm1, xmmword [ebp - 0x3b0]
mov dword [ebp - 0x598], eax
lea eax, [ebp - 0x3b0]
mov dword [ebp - 0x594], ecx
lea ecx, [ebp - 0x4a8]
pxor xmm1, xmmword [ebp - 0x5a0]
push eax
movaps xmmword [ebp - 0x3b0], xmm1
call fcn.004b55b0
cmp byte [eax], 0
je 0x45384b
mov dword [ebp - 0x170], 0x361b8f60
mov dword [ebp - 0x16c], 0x795874e2
mov eax, dword [ebp - 0x170]
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x3c0], eax
mov dword [ebp - 0x3bc], ecx
mov dword [ebp - 0x178], 0xaf4b4030
mov dword [ebp - 0x174], 0xbe0aaf25
mov eax, dword [ebp - 0x178]
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x3b8], eax
mov dword [ebp - 0x3b4], ecx
mov dword [ebp - 0x180], 0x5544fc0f
mov dword [ebp - 0x17c], 0xd280d90
mov eax, dword [ebp - 0x180]
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x620], eax
mov dword [ebp - 0x188], 0xaf4b4030
mov dword [ebp - 0x61c], ecx
mov dword [ebp - 0x184], 0xbe0aaf25
mov eax, dword [ebp - 0x188]
mov ecx, dword [ebp - 0x184]
movaps xmm1, xmmword [ebp - 0x3c0]
mov dword [ebp - 0x618], eax
lea eax, [ebp - 0x3c0]
mov dword [ebp - 0x614], ecx
lea ecx, [ebp - 0x4a8]
pxor xmm1, xmmword [ebp - 0x620]
push eax
movaps xmmword [ebp - 0x3c0], xmm1
call fcn.004b55b0
mov dword [ebp - 0x190], 0x2727926a
mov esi, eax
mov dword [ebp - 0x18c], 0x685c7de9
mov ecx, dword [ebp - 0x190]
mov edx, dword [ebp - 0x18c]
mov dword [ebp - 0x3d0], ecx
mov dword [ebp - 0x3cc], edx
mov dword [ebp - 0x198], 0xca201f54
mov dword [ebp - 0x194], 0xbe0aaf5c
mov ecx, dword [ebp - 0x198]
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x3c8], ecx
mov dword [ebp - 0x3c4], eax
mov dword [ebp - 0x1a0], 0x5544fc0f
mov dword [ebp - 0x19c], 0xd280d90
mov eax, dword [ebp - 0x1a0]
mov ecx, dword [ebp - 0x19c]
mov dword [ebp - 0x5b0], eax
mov dword [ebp - 0x1a8], 0xaf4b4030
mov dword [ebp - 0x5ac], ecx
mov dword [ebp - 0x1a4], 0xbe0aaf25
mov eax, dword [ebp - 0x1a8]
mov ecx, dword [ebp - 0x1a4]
movaps xmm1, xmmword [ebp - 0x3d0]
mov dword [ebp - 0x5a8], eax
lea eax, [ebp - 0x3d0]
mov dword [ebp - 0x5a4], ecx
mov ecx, esi
pxor xmm1, xmmword [ebp - 0x5b0]
push eax
movaps xmmword [ebp - 0x3d0], xmm1
call fcn.004b55b0
cmp byte [eax], 0
je 0x45384b
mov dword [ebp - 0x1b0], 0x361b8f60
mov dword [ebp - 0x1ac], 0x795874e2
mov eax, dword [ebp - 0x1b0]
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x3e0], eax
mov dword [ebp - 0x3dc], ecx
mov dword [ebp - 0x1b8], 0xaf4b4030
mov dword [ebp - 0x1b4], 0xbe0aaf25
mov eax, dword [ebp - 0x1b8]
mov ecx, dword [ebp - 0x1b4]
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3d4], ecx
mov dword [ebp - 0x1c0], 0x5544fc0f
mov dword [ebp - 0x1bc], 0xd280d90
mov eax, dword [ebp - 0x1c0]
mov ecx, dword [ebp - 0x1bc]
mov dword [ebp - 0x5c0], eax
mov dword [ebp - 0x1c8], 0xaf4b4030
mov dword [ebp - 0x5bc], ecx
mov dword [ebp - 0x1c4], 0xbe0aaf25
mov eax, dword [ebp - 0x1c8]
mov ecx, dword [ebp - 0x1c4]
movaps xmm1, xmmword [ebp - 0x3e0]
mov dword [ebp - 0x5b8], eax
lea eax, [ebp - 0x3e0]
mov dword [ebp - 0x5b4], ecx
lea ecx, [ebp - 0x4a8]
pxor xmm1, xmmword [ebp - 0x5c0]
push eax
movaps xmmword [ebp - 0x3e0], xmm1
call fcn.004b55b0
mov dword [ebp - 0x1d0], 0x2727926a
mov esi, eax
mov dword [ebp - 0x1cc], 0x685c7de9
mov ecx, dword [ebp - 0x1d0]
mov edx, dword [ebp - 0x1cc]
mov dword [ebp - 0x3f0], ecx
mov dword [ebp - 0x3ec], edx
mov dword [ebp - 0x1d8], 0xca201f54
mov dword [ebp - 0x1d4], 0xbe0aaf5c
mov ecx, dword [ebp - 0x1d8]
mov eax, dword [ebp - 0x1d4]
mov dword [ebp - 0x3e8], ecx
mov dword [ebp - 0x3e4], eax
mov dword [ebp - 0x1e0], 0x5544fc0f
mov dword [ebp - 0x1dc], 0xd280d90
mov eax, dword [ebp - 0x1e0]
mov ecx, dword [ebp - 0x1dc]
mov dword [ebp - 0x5d0], eax
mov dword [ebp - 0x1e8], 0xaf4b4030
mov dword [ebp - 0x5cc], ecx
mov dword [ebp - 0x1e4], 0xbe0aaf25
mov eax, dword [ebp - 0x1e8]
mov ecx, dword [ebp - 0x1e4]
movaps xmm1, xmmword [ebp - 0x3f0]
mov dword [ebp - 0x5c8], eax
lea eax, [ebp - 0x3f0]
mov dword [ebp - 0x5c4], ecx
mov ecx, esi
pxor xmm1, xmmword [ebp - 0x5d0]
push eax
movaps xmmword [ebp - 0x3f0], xmm1
call fcn.004b55b0
mov byte [ebp - 4], 0x21
xorps xmm0, xmm0
mov esi, dword [ebp - 0x24]
lea edx, [ebp - 0x134]
movups xmmword [ebp - 0x134], xmm0
mov dword [ebp - 0x124], 0
or esi, 0x100000
mov dword [ebp - 0x120], 0
mov ecx, eax
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
mov dword [ebp - 0x24], esi
call fcn.004c6dc0
lea edx, [ebp - 0x134]
lea ecx, [ebp - 0x758]
call fcn.0040fc20
mov edi, eax
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0xc8]
cmp eax, edi
je 0x4537d8
mov ecx, eax
call fcn.0040fe60
movups xmm0, xmmword [edi]
movups xmmword [ebp - 0xc8], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [ebp - 0xb8], xmm0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x758]
call fcn.0040fe60
and esi, 0xffefffff
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x20
mov ecx, dword [ebp - 0x120]
cmp ecx, 0x10
jb 0x45382e
mov edx, dword [ebp - 0x134]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453824
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x454497
push ecx
push edx
call fcn.0050d4b1
add esp, 8
mov dword [ebp - 0x124], 0
mov dword [ebp - 0x120], 0xf
mov byte [ebp - 0x134], 0
jmp 0x45384e
mov esi, dword [ebp - 0x24]
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x4a0]
push dword [ebp - 0x4a8]
call fcn.004b2480
mov ecx, dword [ebp - 0xb8]
test ecx, ecx
je 0x453893
cmp dword [ebp - 0xb4], 0x10
lea eax, [ebp - 0xc8]
push ecx
cmovae eax, dword [ebp - 0xc8]
lea ecx, [ebp - 0xec]
push eax
call fcn.004b0bf0
jmp 0x453893
mov esi, dword [ebp - 0x24]
cmp byte [ebx + 8], 0
jne 0x4539a7
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x40]
sub eax, ecx
sub eax, 0x18
cmp eax, 0x18
jae 0x4538b7
cmp dword [ecx + 0x10], 0
je 0x4539a7
mov dword [ebp - 0x1f0], 0x5544fc53
mov dword [ebp - 0x1ec], 0xd280d90
mov eax, dword [ebp - 0x1f0]
mov ecx, dword [ebp - 0x1ec]
mov dword [ebp - 0x3fc], ecx
mov dword [ebp - 0x400], eax
mov dword [ebp - 0x1f8], 0xaf4b4030
mov dword [ebp - 0x1f4], 0xbe0aaf25
mov eax, dword [ebp - 0x1f8]
mov ecx, dword [ebp - 0x1f4]
mov dword [ebp - 0x3f4], ecx
mov dword [ebp - 0x3f8], eax
mov dword [ebp - 0x200], 0x5544fc0f
mov dword [ebp - 0x1fc], 0xd280d90
mov eax, dword [ebp - 0x200]
mov ecx, dword [ebp - 0x1fc]
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x60c], ecx
mov dword [ebp - 0x208], 0xaf4b4030
mov dword [ebp - 0x204], 0xbe0aaf25
mov eax, dword [ebp - 0x208]
mov ecx, dword [ebp - 0x204]
mov edx, dword [ebp - 0x40]
movaps xmm1, xmmword [ebp - 0x400]
mov dword [ebp - 0x604], ecx
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x608], eax
lea eax, [ebp - 0x400]
pxor xmm1, xmmword [ebp - 0x610]
push eax
lea edx, [edx + ecx]
movaps xmmword [ebp - 0x400], xmm1
lea ecx, [ebp - 0x770]
call fcn.004b5250
add esp, 4
mov edi, eax
mov byte [ebp - 4], 0x23
or dword [ebp - 0x24], 8
jmp 0x4539f3
xorps xmm0, xmm0
mov dword [ebp - 0x360], 0
movups xmmword [ebp - 0x370], xmm0
mov dword [ebp - 0x35c], 0
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x35c], 0xf
mov byte [ebp - 0x370], 0
lea edi, [ebp - 0x370]
mov dword [ebp - 4], 0x24
or esi, 0x10
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x210], 0x34279343
mov dword [ebp - 0x20c], 0x797b2dfc
mov eax, dword [ebp - 0x210]
mov ecx, dword [ebp - 0x20c]
mov dword [ebp - 0x4e0], eax
mov dword [ebp - 0x4dc], ecx
mov dword [ebp - 0x218], 0xc82a325f
mov dword [ebp - 0x214], 0xdb66f340
mov eax, dword [ebp - 0x218]
mov ecx, dword [ebp - 0x214]
mov dword [ebp - 0x4d8], eax
mov dword [ebp - 0x4d4], ecx
mov dword [ebp - 0x220], 0x45c408e7
mov dword [ebp - 0x21c], 0x97b66a08
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x21c]
mov dword [ebp - 0x4d0], eax
mov dword [ebp - 0x4cc], ecx
mov dword [ebp - 0x228], 0x5daaa48a
mov dword [ebp - 0x224], 0xeb786327
mov eax, dword [ebp - 0x228]
mov ecx, dword [ebp - 0x224]
mov dword [ebp - 0x4c8], eax
mov dword [ebp - 0x4c4], ecx
mov dword [ebp - 0x230], 0x5544fc0f
mov dword [ebp - 0x22c], 0xd280d90
mov eax, dword [ebp - 0x230]
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x640], eax
mov dword [ebp - 0x63c], ecx
mov dword [ebp - 0x238], 0xaf4b4030
mov dword [ebp - 0x234], 0xbe0aaf25
mov eax, dword [ebp - 0x238]
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x634], ecx
mov dword [ebp - 0x240], 0x21a86d91
mov dword [ebp - 0x23c], 0x97b66a6a
mov eax, dword [ebp - 0x240]
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x630], eax
mov dword [ebp - 0x62c], ecx
mov dword [ebp - 0x248], 0x5daaa48a
mov dword [ebp - 0x244], 0xeb786327
mov eax, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x244]
vmovdqu ymm0, ymmword [ebp - 0x4e0]
mov dword [ebp - 0x628], eax
mov dword [ebp - 0x624], ecx
vpxor ymm0, ymm0, ymmword [ebp - 0x640]
vmovdqa ymmword [ebp - 0x4e0], ymm0
mov dword [ebp - 0x250], 0x5544fc53
mov dword [ebp - 0x24c], 0xd280d90
mov eax, dword [ebp - 0x250]
mov ecx, dword [ebp - 0x24c]
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2ec], ecx
mov dword [ebp - 0x258], 0xaf4b4030
mov dword [ebp - 0x254], 0xbe0aaf25
mov eax, dword [ebp - 0x258]
mov ecx, dword [ebp - 0x254]
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x2e4], ecx
mov dword [ebp - 0x260], 0x5544fc0f
mov dword [ebp - 0x25c], 0xd280d90
mov eax, dword [ebp - 0x260]
mov ecx, dword [ebp - 0x25c]
mov dword [ebp - 0x268], 0xaf4b4030
mov dword [ebp - 0x5f0], eax
mov dword [ebp - 0x264], 0xbe0aaf25
mov eax, dword [ebp - 0x268]
mov dword [ebp - 0x5ec], ecx
mov ecx, dword [ebp - 0x264]
mov dword [ebp - 0x5e8], eax
mov dword [ebp - 0x5e4], ecx
vmovaps xmm1, xmmword [ebp - 0x5f0]
vpxor xmm1, xmm1, xmmword [ebp - 0x2f0]
vmovaps xmmword [ebp - 0x2f0], xmm1
mov dword [ebp - 4], 0x25
lea ecx, [ebp - 0x2f0]
lea edx, [ecx + 1]
vzeroupper
mov al, byte [ecx]
inc ecx
test al, al
jne 0x453c46
sub ecx, edx
mov eax, closesocket
mov edx, dword [ebp - 0x84]
sub eax, edx
cmp eax, ecx
jb 0x45449c
cmp dword [ebp - 0x80], 0x10
lea eax, [ebp - 0x94]
push ecx
cmovae eax, dword [ebp - 0x94]
lea ecx, [ebp - 0x2f0]
push ecx
push edx
push eax
push ecx
push dword [ebp - 0x64]
lea ecx, [ebp - 0x6f8]
call fcn.004b92d0
mov esi, dword [ebp - 0x24]
or esi, 0x800
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x26
lea eax, [ebp - 0x6f8]
push edi
push eax
push dword [ebp - 0x64]
lea ecx, [ebp - 0x6e0]
call fcn.004b9100
lea eax, [ebp - 0x4e0]
or esi, 0x200
push eax
lea edx, [ebp - 0x6e0]
mov dword [ebp - 0x24], esi
lea ecx, [ebp - 0x710]
call fcn.004b52e0
add esp, 4
mov byte [ebp - 4], 0x27
and esi, 0xfffffdff
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x6e0]
call fcn.0040fe60
and esi, 0xfffff7ff
mov dword [ebp - 0x24], esi
mov byte [ebp - 4], 0x29
lea ecx, [ebp - 0x6f8]
call fcn.0040fe60
mov byte [ebp - 4], 0x2a
mov eax, esi
test al, 0x10
je 0x453d74
and eax, 0xffffffef
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x35c]
cmp ecx, 0x10
jb 0x453d59
mov edx, dword [ebp - 0x370]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x453d4c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x454497
push ecx
push edx
call fcn.0050d4b1
mov eax, dword [ebp - 0x24]
add esp, 8
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x35c], 0xf
mov byte [ebp - 0x370], 0
mov byte [ebp - 4], 0x2b
test al, 8
je 0x453d8d
and eax, 0xfffffff7
lea ecx, [ebp - 0x770]
mov dword [ebp - 0x24], eax
call fcn.0040fe60
sub esp, 0x18
lea eax, [ebp - 0x710]
mov ecx, esp
mov dword [ebp - 0x644], esp
push eax
call fcn.004b0ec0
mov byte [ebp - 4], 0x2c
push 1
mov byte [ebp - 4], 0x2b
xor dl, dl
lea ecx, [ebp - 0x70]
call fcn.00439b60
add esp, 0x1c
mov byte [ebp - 4], 0x2d
mov eax, 0x2aaaaaab
mov ecx, dword [ebp - 0x6c]
sub ecx, dword [ebp - 0x70]
imul ecx
mov dword [ebp - 0x48], 0
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4543b7
xor edi, edi
mov dword [ebp - 0x5c], edi
nop dword [eax + eax]
mov dword [ebp - 0x270], 0x322b9021
xorps xmm0, xmm0
mov dword [ebp - 0x26c], 0xd280d90
mov eax, dword [ebp - 0x270]
mov ecx, dword [ebp - 0x26c]
mov dword [ebp - 0x2fc], ecx
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x278], 0xaf4b4030
mov dword [ebp - 0x274], 0xbe0aaf25
mov eax, dword [ebp - 0x278]
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x2f4], ecx
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x280], 0x5544fc0f
mov dword [ebp - 0x27c], 0xd280d90
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x27c]
mov dword [ebp - 0x288], 0xaf4b4030
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x5dc], ecx
mov dword [ebp - 0x284], 0xbe0aaf25
mov eax, dword [ebp - 0x288]
mov ecx, dword [ebp - 0x284]
movaps xmm1, xmmword [ebp - 0x300]
mov dword [ebp - 0x5d4], ecx
lea ecx, [ebp - 0x300]
mov dword [ebp - 0x5d8], eax
lea edx, [ecx + 1]
pxor xmm1, xmmword [ebp - 0x5e0]
movaps xmmword [ebp - 0x300], xmm1
movups xmmword [ebp - 0x488], xmm0
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x474], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x453ee0
sub ecx, edx
lea eax, [ebp - 0x300]
push ecx
push eax
lea ecx, [ebp - 0x488]
call fcn.004100e0
mov byte [ebp - 4], 0x2e
mov edx, dword [ebp - 0x70]
or dword [ebp - 0x24], 0x20
add edx, edi
cmp dword [edx + 0x14], 0x10
jb 0x453f11
mov edx, dword [edx]
mov ecx, edx
mov dword [ebp - 0x448], 0
xorps xmm0, xmm0
mov dword [ebp - 0x444], 0
movups xmmword [ebp - 0x458], xmm0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x453f34
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x458]
call fcn.004100e0
mov dword [ebp - 4], 0x2f
lea edx, [ebp - 0x488]
or dword [ebp - 0x24], 0x40
lea ecx, [ebp - 0x458]
call fcn.004522a0
test al, al
jne 0x4540fd
mov dword [ebp - 0x290], 0x37209021
xorps xmm0, xmm0
mov dword [ebp - 0x28c], 0xd280d90
mov eax, dword [ebp - 0x290]
mov ecx, dword [ebp - 0x28c]
mov dword [ebp - 0x30c], ecx
mov dword [ebp - 0x310], eax
mov dword [ebp - 0x298], 0xaf4b4030
mov dword [ebp - 0x294], 0xbe0aaf25
mov eax, dword [ebp - 0x298]
mov ecx, dword [ebp - 0x294]
mov dword [ebp - 0x304], ecx
mov dword [ebp - 0x308], eax
mov dword [ebp - 0x2a0], 0x5544fc0f
mov dword [ebp - 0x29c], 0xd280d90
mov eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x29c]
mov dword [ebp - 0x2a8], 0xaf4b4030
mov dword [ebp - 0x600], eax
mov dword [ebp - 0x5fc], ecx
mov dword [ebp - 0x2a4], 0xbe0aaf25
mov eax, dword [ebp - 0x2a8]
mov ecx, dword [ebp - 0x2a4]
movaps xmm1, xmmword [ebp - 0x310]
mov dword [ebp - 0x5f4], ecx
lea ecx, [ebp - 0x310]
mov dword [ebp - 0x5f8], eax
lea edx, [ecx + 1]
pxor xmm1, xmmword [ebp - 0x600]
movaps xmmword [ebp - 0x310], xmm1
movups xmmword [ebp - 0x470], xmm0
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x454060
sub ecx, edx
lea eax, [ebp - 0x310]
push ecx
push eax
lea ecx, [ebp - 0x470]
call fcn.004100e0
mov dword [ebp - 4], 0x30
mov edx, dword [ebp - 0x70]
or dword [ebp - 0x24], 0x80
add edx, edi
cmp dword [edx + 0x14], 0x10
jb 0x454097
mov edx, dword [edx]
mov ecx, edx
mov dword [ebp - 0x654], 0
xorps xmm0, xmm0
mov dword [ebp - 0x650], 0
movups xmmword [ebp - 0x664], xmm0
lea esi, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4540c0
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x664]
call fcn.004100e0
mov dword [ebp - 4], 0x31
lea edx, [ebp - 0x470]
or dword [ebp - 0x24], 0x100
lea ecx, [ebp - 0x664]
call fcn.004522a0
mov byte [ebp - 0x31], 0
test al, al
je 0x454101
mov byte [ebp - 0x31], 1
mov dword [ebp - 4], 0x30
mov eax, dword [ebp - 0x24]
test eax, 0x100
je 0x454128
and eax, 0xfffffeff
lea ecx, [ebp - 0x664]
mov dword [ebp - 0x24], eax
call fcn.0040fe60
mov eax, dword [ebp - 0x24]
mov dword [ebp - 4], 0x2f
test al, al
jns 0x454193
and eax, 0xffffff7f
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x45c]
cmp ecx, 0x10
jb 0x454178
mov edx, dword [ebp - 0x470]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45416b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x454497
push ecx
push edx
call fcn.0050d4b1
mov eax, dword [ebp - 0x24]
add esp, 8
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x45c], 0xf
mov byte [ebp - 0x470], 0
mov dword [ebp - 4], 0x2e
test al, 0x40
je 0x4541fc
and eax, 0xffffffbf
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x444]
cmp ecx, 0x10
jb 0x4541e1
mov edx, dword [ebp - 0x458]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x4541d4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x454497
push ecx
push edx
call fcn.0050d4b1
mov eax, dword [ebp - 0x24]
add esp, 8
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 0xf
mov byte [ebp - 0x458], 0
mov dword [ebp - 4], 0x2d
test al, 0x20
je 0x454262
and eax, 0xffffffdf
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x474]
cmp ecx, 0x10
jb 0x454247
mov edx, dword [ebp - 0x488]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x45423d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x454497
push ecx
push edx
call fcn.0050d4b1
add esp, 8
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x474], 0xf
mov byte [ebp - 0x488], 0
cmp byte [ebp - 0x31], 0
je 0x45438b
sub esp, 0x18
lea eax, [ebp - 0xec]
mov ecx, esp
mov dword [ebp - 0x64c], esp
push eax
call fcn.004b0ec0
mov byte [ebp - 4], 0x32
sub esp, 0x18
mov eax, dword [ebp - 0x70]
mov ecx, esp
add eax, edi
mov dword [ebp - 0x668], esp
push eax
call fcn.004b0ec0
mov byte [ebp - 4], 0x33
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x2b4]
call fcn.00451800
add esp, 0x30
mov byte [ebp - 4], 0x34
xor ecx, ecx
mov esi, dword [ebp - 0x2b4]
mov eax, 0x38e38e39
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x2b0]
sub ecx, esi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x45437c
xor edi, edi
mov dword [ebp - 0x54], edi
mov eax, dword [ebp - 0x58]
add esi, edi
push esi
mov edi, dword [eax + 4]
cmp edi, dword [eax + 8]
je 0x45433d
mov dword [ebp - 0x9c], edi
mov ecx, edi
mov dword [ebp - 0xa4], edi
call fcn.004b0ec0
mov byte [ebp - 4], 0x37
lea eax, [esi + 0x18]
lea ecx, [edi + 0x18]
push eax
mov dword [ebp - 0xac], ecx
call fcn.004b0ec0
mov byte [ebp - 4], 0x3a
lea ecx, [edi + 0x30]
add esi, 0x30
mov dword [ebp - 0x2c], ecx
push esi
call fcn.004b0ec0
mov byte [ebp - 4], 0x34
mov eax, dword [ebp - 0x58]
add dword [eax + 4], 0x48
jmp 0x454345
push edi
mov ecx, eax
call fcn.004bd290
mov ecx, dword [ebp - 0x2b0]
mov eax, 0x38e38e39
mov esi, dword [ebp - 0x2b4]
sub ecx, esi
mov edi, dword [ebp - 0x54]
inc dword [ebp - 0x50]
add edi, 0x48
imul ecx
mov dword [ebp - 0x54], edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x50], eax
jb 0x4542e6
mov edi, dword [ebp - 0x5c]
mov byte [ebp - 4], 0x2d
lea ecx, [ebp - 0x2b4]
call fcn.004ade20
mov ecx, dword [ebp - 0x6c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x70]
add edi, 0x18
mov esi, dword [ebp - 0x48]
imul ecx
inc esi
mov dword [ebp - 0x5c], edi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x48], esi
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x453df0
mov byte [ebp - 4], 0x2b
lea ecx, [ebp - 0x70]
call fcn.004b2e00
mov byte [ebp - 4], 0x1d
lea ecx, [ebp - 0x710]
call fcn.0040fe60
mov byte [ebp - 4], 0x1c
lea ecx, [ebp - 0xc8]
call fcn.0040fe60
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x680]
call fcn.0040fe60
mov ecx, dword [ebp - 0x3c]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x44]
mov edi, dword [ebp - 0x4c]
inc esi
imul ecx
add edi, 0x18
mov dword [ebp - 0x44], esi
sar edx, 2
mov eax, edx
mov dword [ebp - 0x4c], edi
shr eax, 0x1f
add eax, edx
cmp esi, eax
jae 0x454423
mov esi, dword [ebp - 0x24]
jmp 0x452f70
mov dword [ebp - 0x24], 0
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xec]
call fcn.0040fe60
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x698]
call fcn.0040fe60
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x40]
call fcn.004b2e00
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x94]
call fcn.0040fe60
mov dword [ebp - 4], 0
lea ecx, [ebx + 0xc]
call fcn.0040fe60
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0x24]
call fcn.0040fe60
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.005289b0
call fcn.0040f7b0
call fcn.005289b0
call fcn.005289b0
int3