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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x170
mov esi, dword [ebp + 0xc]
lea eax, [esp + 4]
lea edi, [esp + 0x18]
mov dword [esp + 4], ecx
mov dword [esp + 0x70], 0x101e3434
mov dword [esp + 0x74], 1
mov dword [esp + 0x80], 0
mov dword [esp + 8], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], 0x1003edf0
mov dword [esp + 0x7c], 1
lea eax, [esp + 0x70]
push eax
call fcn.1005f950
add esp, 4
call fcn.101517c0
mov dword [esp + 0xc], edx
mov dword [esp], ecx
mov ebx, eax
call fcn.101480a0
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0x110], xmm0
lock dec dword [eax]
jne 0x1005196f
mov ecx, eax
call fcn.10044480
mov edx, dword [esp + 4]
movapd xmm0, xmmword [0x101e04f0]
mov dword [esp + 0x164], 0
mov word [esp + 0x168], 0
mov dword [esp + 0x148], 0
movupd xmmword [esp + 0x150], xmm0
mov dword [esp + 0x160], 0
mov word [esp + 0x164], 0x101
mov dword [esp + 0x158], 1
lea eax, [esp + 0x148]
lea ecx, [esp + 0x70]
push eax
push dword [esp + 0xc]
call fcn.10158120
add esp, 8
cmp byte [esp + 0x70], 4
jne 0x100519e9
mov eax, dword [esp + 0x74]
jmp 0x100519fa
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
cmp cl, 4
jne 0x10051bbb
mov dword [esp + 0x14], ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0x10], eax
movzx eax, byte [ebx + 0xa0]
lea edx, [esp + 0x40]
lea ecx, [esp + 0x10]
push eax
push ecx
push ebx
push edx
call fcn.100349e0
add esp, 0x10
cmp byte [esp + 0x40], 0
je 0x10051abc
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 8]
movzx eax, byte [esp + 0x41]
lea edx, [esp + 0x110]
mov dword [esp + 0x18], 0x101e34e0
mov dword [esp + 0x1c], 3
mov dword [esp + 0x28], 0
mov dword [esp + 0x70], edx
lea edx, [esp + 0x50]
mov dword [esp + 0x74], 0x10157170
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x50], al
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x7c], 0x10150770
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], 0x10038790
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
push edi
call fcn.1005f950
add esp, 4
push dword [esp + 0x10]
call sub.KERNEL32.dll_CloseHandle
jmp 0x1005202d
mov eax, dword [esp + 0x48]
mov dword [esp + 0x70], 0x101e3454
mov dword [esp + 0x74], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], 1
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x128], eax
lea eax, [esp + 4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x1003edf0
lea eax, [esp + 0x70]
push eax
call fcn.1005f950
add esp, 4
mov eax, dword [esi + 8]
mov edx, dword [esi + 0xc]
nop dword [eax]
mov ebx, eax
mov ecx, edx
add ebx, 1
adc ecx, 0
lock cmpxchg8b qword [esi + 8]
jne 0x10051b20
push dword [esp + 0x10]
call sub.KERNEL32.dll_CloseHandle
cmp byte [ebp + 0x14], 0
mov bl, 1
je 0x10051cdf
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov edi, dword [eax + 8]
mov ebx, dword [eax]
mov dword [esp + 0x124], ecx
mov dword [esp + 0x120], edx
test edi, edi
mov dword [esp + 0x11c], ebx
je 0x10051c94
js 0x1005205a
mov eax, dword [0x103564a0]
mov ebx, dword [0x1035648c]
movzx eax, byte [eax]
mov eax, dword [ebx]
test eax, eax
jne 0x10051b98
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x10051bab
mov dword [ebx], eax
push edi
push 0
push eax
call sub.KERNEL32.dll_HeapAlloc
mov ebx, eax
test eax, eax
jne 0x10051c99
push edi
push 1
call fcn.1001a7e0
add esp, 8
jmp 0x1005205f
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x18], 0x101e3518
mov dword [esp + 0x1c], 3
mov dword [esp + 0x28], 0
mov dword [esp + 0x58], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x58]
mov dword [esp + 0x74], 0x10157170
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
mov dword [esp + 0x78], eax
mov eax, edi
lea edi, [esp + 0x40]
mov dword [esp + 0x7c], 0x10150770
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], fcn.1014adc0
push eax
call fcn.1005f950
add esp, 4
cmp byte [esp + 0x40], 3
jne 0x1005202d
mov eax, dword [esp + 0x44]
mov ebx, dword [eax + 4]
mov edi, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [ebx]
push edi
call eax
add esp, 4
cmp dword [ebx + 4], 0
je 0x10051c7d
cmp dword [ebx + 8], 9
jb 0x10051c6e
mov edi, dword [edi - 4]
mov eax, dword [0x1035648c]
push edi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
mov eax, dword [0x1035648c]
push dword [esp + 0xc]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
jmp 0x1005202d
mov ebx, 1
push edi
push dword [esp + 0x120]
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
mov edx, dword [esp + 0x120]
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x124]
push dword [eax + 0x9c]
lea eax, [esp + 0x74]
push eax
call fcn.100520d0
add esp, 8
mov ebx, eax
xor bl, 1
call fcn.101517c0
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
push dword [esp]
push dword [esp + 0x10]
push dword [esp + 0x1c]
lea eax, [esp + 0x7c]
push eax
call fcn.10151850
add esp, 0x10
movdqa xmm2, xmmword [0x101e0500]
movapd xmm1, xmmword [0x101e0510]
xor edi, edi
cmp ecx, 0x3b9aca00
xorpd xmm0, xmm0
xorpd xmm4, xmm4
cmovne edi, ecx
je 0x10051d4d
movd xmm3, eax
movd xmm4, edx
punpckldq xmm3, xmm4
punpckldq xmm3, xmm2
subpd xmm3, xmm1
movapd xmm4, xmm3
unpckhpd xmm4, xmm3
addsd xmm4, xmm3
movd xmm3, edi
movd xmm5, dword [esp + 0x128]
por xmm3, xmmword [0x101e0520]
subsd xmm3, qword [0x101e0530]
divsd xmm3, qword [0x101e0538]
addsd xmm3, xmm4
movd xmm4, dword [esp + 0x12c]
ucomisd xmm3, xmm0
movsd qword [esp + 0x130], xmm3
punpckldq xmm4, xmm5
punpckldq xmm4, xmm2
subpd xmm4, xmm1
movapd xmm1, xmm4
unpckhpd xmm1, xmm4
addsd xmm1, xmm4
divsd xmm1, qword [0x101e0540]
movsd qword [esp + 0x138], xmm1
jbe 0x10051dbf
divsd xmm1, xmm3
movapd xmm0, xmm1
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp + 0x58], 0x101e3488
mov dword [esp + 0x5c], 6
mov dword [esp + 0x70], 2
mov dword [esp + 0x78], 2
mov dword [esp + 0x80], 0x20
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov byte [esp + 0x8c], 3
mov dword [esp + 0x90], 2
mov dword [esp + 0x98], 2
mov dword [esp + 0xa0], 0x20
mov dword [esp + 0xa4], 1
mov dword [esp + 0xa8], 0
mov byte [esp + 0xac], 3
mov dword [esp + 0xb0], 2
mov dword [esp + 0xb8], 2
mov dword [esp + 0xc0], 0x20
mov dword [esp + 0xc4], 2
mov dword [esp + 0xc8], 0
mov byte [esp + 0xcc], 3
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 4
mov dword [esp + 0xd8], 2
mov dword [esp + 0xe0], 0x20
mov dword [esp + 0xe4], 3
mov dword [esp + 0xe8], 0
mov byte [esp + 0xec], 3
mov dword [esp + 0xf0], 0
mov dword [esp + 0xf4], 4
mov dword [esp + 0xf8], 2
mov dword [esp + 0x100], 0x20
mov dword [esp + 0x104], 4
mov dword [esp + 0x108], 0
movsd qword [esp + 0x140], xmm0
mov byte [esp + 0x10c], 3
mov dword [esp + 0x50], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x18], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], 0x10157170
mov dword [esp + 0x20], eax
lea eax, [esp + 0x138]
mov dword [esp + 0x24], 0x10150770
mov dword [esp + 0x28], eax
lea eax, [esp + 0x130]
mov dword [esp + 0x2c], 0x1002cc20
mov dword [esp + 0x30], eax
lea eax, [esp + 0x140]
mov dword [esp + 0x34], 0x1002cb90
mov dword [esp + 0x38], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x3c], 0x1002cc20
mov dword [esp + 0x68], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x6c], 5
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 5
lea eax, [esp + 0x58]
push eax
call fcn.1005f950
add esp, 4
test byte [ebp + 0x14], bl
je 0x1005202d
mov dword [esp + 0x70], str._INFO__Trying_to_rename_file_again...
mov dword [esp + 0x74], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x78], str.a_sequencefailed_to_write_whole_buffer
mov dword [esp + 0x7c], 0
lea eax, [esp + 0x70]
push eax
call fcn.1005f950
add esp, 4
mov edi, dword [ebp + 0x10]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 4]
mov eax, dword [edi + 8]
movsd xmm0, qword [edi]
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
mov eax, dword [ebp + 8]
push dword [eax + 0x9c]
lea eax, [esp + 0x74]
push eax
call fcn.100520d0
add esp, 8
jmp 0x10052046
mov ecx, dword [ebp + 0x10]
cmp dword [ecx + 4], 0
je 0x10052046
mov eax, dword [0x1035648c]
push dword [ecx]
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
lock dec dword [esi]
jne 0x10052052
mov ecx, esi
call fcn.10043f50
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1001a7a0
ud2