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

Disassembly:
push 0xffffffffffffffff
push 0x4c1fa8
mov eax, dword fs:[0]
push eax
sub esp, 0x44
push ebx
push ebp
push esi
push edi
mov eax, dword [0x570f20]
xor eax, esp
push eax
lea eax, [esp + 0x58]
mov dword fs:[0], eax
mov esi, ecx
lea eax, [esi + 0x990]
xor edi, edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
cmp eax, edi
je 0x408334
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x50]
mov dword [esp + 0x60], edi
mov dword [esp + 0x20], edi
mov edi, dword [0x570130]
sub edi, dword [esi + 0x9bc]
xor ecx, ecx
sub edi, dword [esi + 0x9b8]
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004a5f16
mov ebp, eax
mov eax, dword [esi + 0x50]
xor ecx, ecx
mov edx, 4
mul edx
seto cl
mov dword [esp + 0x18], ebp
neg ecx
or ecx, eax
push ecx
call fcn.004a5f16
mov ecx, 2
add esp, 8
mov ebx, eax
mov dword [ebp + 4], 0xffffffff
mov dword [ebp], 0xffffffff
mov dword [esp + 0x28], ebx
cmp dword [esi + 0x50], ecx
jle 0x40843c
mov edx, ebx
sub edx, ebp
mov dword [esp + 0x1c], 0x28
lea eax, [ebp + 8]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0xbc]
cmp byte [edx + ebp], 0
jne 0x4083d6
mov dword [eax], 0xffffffff
jmp 0x408421
cmp dword [edx + ebp + 8], 0
jge 0x4083f0
mov edx, dword [0x570128]
imul edx, dword [0x570124]
lea edx, [edx + edx + 1]
jmp 0x40841b
add edx, ebp
mov ebp, dword [esi + 0xb8]
mov dword [esp + 0x24], edx
mov edx, dword [edx + 8]
imul edx, edx, 0x118
mov edx, dword [edx + ebp + 4]
imul edx, dword [0x570128]
mov ebp, dword [esp + 0x24]
add edx, dword [ebp + 0xc]
mov ebp, dword [esp + 0x1c]
inc dword [esp + 0x20]
mov dword [eax], edx
mov edx, dword [esp + 0x18]
mov dword [edx + eax], ecx
inc ecx
add ebp, 0x14
add eax, 4
mov dword [esp + 0x1c], ebp
cmp ecx, dword [esi + 0x50]
jl 0x4083c2
mov ebp, dword [esp + 0x14]
mov eax, dword [esi + 0x50]
mov ecx, 2
cmp eax, ecx
jle 0x4084ac
mov dword [esp + 0x1c], 2
cmp eax, 2
jle 0x4084a4
mov edx, ebx
sub edx, ebp
lea eax, [ebp + 8]
mov dword [esp + 0x18], edx
mov edx, dword [ebp + ecx*4]
mov ebp, dword [eax]
cmp edx, ebp
jle 0x40848f
mov ebx, dword [esp + 0x14]
mov dword [ebx + ecx*4], ebp
mov ebx, dword [esp + 0x28]
mov dword [eax], edx
mov edx, dword [ebx + ecx*4]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x18]
mov ebp, dword [eax + edx]
mov dword [ebx + ecx*4], ebp
mov ebp, dword [esp + 0x24]
mov dword [eax + edx], ebp
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x14]
inc edx
add eax, 4
mov dword [esp + 0x1c], edx
cmp edx, dword [esi + 0x50]
jl 0x408460
mov eax, dword [esi + 0x50]
inc ecx
cmp ecx, eax
jl 0x408448
mov edx, dword [esp + 0x20]
movsd xmm5, qword [0x4c5be8]
movsd xmm6, qword [0x4c5bf0]
movsd xmm7, qword [0x4c5bf8]
lea ecx, [edx + edx*8]
add ecx, ecx
mov eax, edi
sub eax, dword [esi + 0x80]
add ecx, ecx
xorps xmm4, xmm4
cvtsi2ss xmm4, edx
cmp eax, ecx
mov eax, dword [esi + 0x9bc]
xorps xmm0, xmm0
xorps xmm2, xmm2
cvtps2pd xmm1, xmm4
jge 0x4086f0
add eax, ecx
add eax, dword [esi + 0x9b8]
mov ecx, edi
add eax, dword [esi + 0x80]
mov dword [0x570130], eax
sub ecx, dword [esi + 0x80]
cvtsi2ss xmm0, ecx
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm2, xmm0
movapd xmm0, xmm5
andpd xmm0, xmm2
movapd xmm3, xmm0
movapd xmm0, xmm2
xorpd xmm0, xmm3
movapd xmm1, xmm6
cmpltsd xmm0, xmm1
andpd xmm1, xmm0
orpd xmm1, xmm3
movapd xmm0, xmm2
addsd xmm0, xmm1
subsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, xmm2
cmpnlesd xmm1, xmm3
movapd xmm2, xmm7
andpd xmm1, xmm2
subsd xmm0, xmm1
movsd xmm1, qword [0x4c5c20]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x4085f7
xorps xmm0, xmm0
cvtps2pd xmm1, xmm4
mov edx, edi
sub edx, dword [esi + 0x80]
xorps xmm2, xmm2
cvtsi2ss xmm0, edx
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm2, xmm0
movapd xmm0, xmm5
andpd xmm0, xmm2
movapd xmm3, xmm0
movapd xmm0, xmm2
xorpd xmm0, xmm3
movapd xmm1, xmm6
cmpltsd xmm0, xmm1
andpd xmm1, xmm0
orpd xmm1, xmm3
movapd xmm0, xmm2
addsd xmm0, xmm1
subsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, xmm2
cmpnlesd xmm1, xmm3
movapd xmm2, xmm7
andpd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
jmp 0x4085ff
movss xmm0, dword [0x4c5f00]
movsd xmm1, qword [0x4c5ef8]
cvtss2sd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x40861e
movss xmm0, dword [0x4c5ef0]
jmp 0x4086a7
sub edi, dword [esi + 0x80]
xorps xmm0, xmm0
cvtsi2ss xmm0, edi
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm4
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
movapd xmm0, xmm5
andpd xmm0, xmm2
movapd xmm3, xmm0
movapd xmm1, xmm6
movapd xmm0, xmm2
xorpd xmm0, xmm3
cmpltsd xmm0, xmm1
andpd xmm1, xmm0
orpd xmm1, xmm3
movapd xmm0, xmm2
addsd xmm0, xmm1
subsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, xmm2
movsd xmm2, qword [0x4c5c20]
cmpnlesd xmm1, xmm3
andpd xmm1, xmm7
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
comisd xmm2, xmm1
ja 0x4086a7
movss xmm0, dword [0x4c5f00]
mov edx, dword [0x6bb3dc]
push 0x42
cvttss2si ecx, xmm0
mov dword [esp + 0x24], ecx
mov ecx, dword [0x5723b8]
add ecx, dword [0x57012c]
mov edi, eax
add eax, dword [0x570138]
sub edi, dword [esi + 0x9bc]
push eax
sub edi, dword [esi + 0x9b8]
push ecx
push 0
push 0
push 0
push edx
mov dword [0x6bb438], eax
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x4088b2
add eax, ecx
add eax, dword [esi + 0x9b8]
mov ecx, edi
add eax, dword [0x570138]
add eax, dword [esi + 0x80]
mov dword [0x6bb438], eax
sub ecx, dword [esi + 0x80]
cvtsi2ss xmm0, ecx
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm2, xmm0
movapd xmm0, xmm5
andpd xmm0, xmm2
movapd xmm3, xmm0
movapd xmm0, xmm2
xorpd xmm0, xmm3
movapd xmm1, xmm6
cmpltsd xmm0, xmm1
andpd xmm1, xmm0
orpd xmm1, xmm3
movapd xmm0, xmm2
addsd xmm0, xmm1
subsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, xmm2
cmpnlesd xmm1, xmm3
movapd xmm2, xmm7
andpd xmm1, xmm2
subsd xmm0, xmm1
movsd xmm1, qword [0x4c5c20]
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x4087f8
xorps xmm0, xmm0
cvtps2pd xmm1, xmm4
mov edx, edi
sub edx, dword [esi + 0x80]
xorps xmm2, xmm2
cvtsi2ss xmm0, edx
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm2, xmm0
movapd xmm0, xmm5
andpd xmm0, xmm2
movapd xmm3, xmm0
movapd xmm0, xmm2
xorpd xmm0, xmm3
movapd xmm1, xmm6
cmpltsd xmm0, xmm1
andpd xmm1, xmm0
orpd xmm1, xmm3
movapd xmm0, xmm2
addsd xmm0, xmm1
subsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, xmm2
cmpnlesd xmm1, xmm3
movapd xmm2, xmm7
andpd xmm1, xmm2
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
jmp 0x408800
movss xmm0, dword [0x4c5f00]
movsd xmm1, qword [0x4c5ef8]
cvtss2sd xmm0, xmm0
comisd xmm1, xmm0
jbe 0x40881f
movss xmm0, dword [0x4c5ef0]
jmp 0x4088aa
xorps xmm0, xmm0
cvtps2pd xmm1, xmm4
mov eax, edi
sub eax, dword [esi + 0x80]
xorps xmm2, xmm2
cvtsi2ss xmm0, eax
cvtps2pd xmm0, xmm0
divsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm2, xmm0
movapd xmm0, xmm5
andpd xmm0, xmm2
movapd xmm3, xmm0
movapd xmm1, xmm6
movapd xmm0, xmm2
xorpd xmm0, xmm3
cmpltsd xmm0, xmm1
andpd xmm1, xmm0
orpd xmm1, xmm3
movapd xmm0, xmm2
addsd xmm0, xmm1
subsd xmm0, xmm1
movapd xmm1, xmm0
subsd xmm1, xmm2
movsd xmm2, qword [0x4c5c20]
cmpnlesd xmm1, xmm3
andpd xmm1, xmm7
subsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
comisd xmm2, xmm1
ja 0x4088aa
movss xmm0, dword [0x4c5f00]
cvttss2si ecx, xmm0
mov dword [esp + 0x20], ecx
mov edx, 2
mov dword [esp + 0x1c], edx
cmp dword [esi + 0x50], edx
jle 0x408992
mov ebp, edi
sub ebp, dword [esp + 0x20]
lea ebx, [ebx]
mov ecx, dword [ebx + edx*4]
mov eax, dword [esi + 0xbc]
lea ecx, [ecx + ecx*4]
add ecx, ecx
add ecx, ecx
cmp byte [eax + ecx], 0
je 0x408980
mov edx, dword [0x57012c]
mov eax, dword [eax + ecx + 4]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], ebp
movq xmm0, qword [esp + 0x34]
movq qword [eax + 0x104], xmm0
mov dword [esp + 0x40], edi
movq xmm0, qword [esp + 0x3c]
movq qword [eax + 0x10c], xmm0
mov dword [esp + 0x4c], edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], ebp
movq xmm0, qword [esp + 0x44]
movq qword [eax + 0x114], xmm0
mov dword [esp + 0x50], edi
movq xmm0, qword [esp + 0x4c]
movq qword [eax + 0x11c], xmm0
mov byte [esp + 0x54], 1
mov edx, dword [esp + 0x54]
mov dword [eax + 0x124], edx
mov eax, dword [esi + 0xbc]
mov ecx, dword [ecx + eax + 4]
mov edx, dword [ecx]
mov eax, dword [edx + 0x28]
call eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
sub edi, eax
sub ebp, eax
inc edx
mov dword [esp + 0x1c], edx
cmp edx, dword [esi + 0x50]
jl 0x4088d0
mov ebp, dword [esp + 0x14]
cmp byte [esp + 0x68], 0
je 0x408a1f
mov eax, dword [0x570130]
sub eax, dword [esi + 0x9bc]
mov ecx, dword [esi + 0x80]
sub eax, dword [esi + 0x9b8]
mov edx, dword [0x57012c]
xor edi, edi
mov dword [esp + 0x50], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], eax
sub esp, 0x24
mov eax, esp
mov dword [esp + 0x58], edi
movq xmm0, qword [esp + 0x58]
movq qword [eax], xmm0
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x60], edx
movq xmm0, qword [esp + 0x60]
movq qword [eax + 8], xmm0
mov dword [esp + 0x68], edi
movq xmm0, qword [esp + 0x68]
movq qword [eax + 0x10], xmm0
mov dword [esp + 0x70], edx
movq xmm0, qword [esp + 0x70]
mov byte [esp + 0x78], 1
mov ecx, dword [esp + 0x78]
movq qword [eax + 0x18], xmm0
mov dword [eax + 0x20], ecx
mov ecx, esi
call fcn.004032f0
push ebp
call fcn.004a7d0c
push ebx
call fcn.004a7d0c
mov eax, dword [esp + 0x34]
add esp, 8
test eax, eax
je 0x408a3d
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret 4