Function at 0x52c140
Capabilities:
Resolve function by parsing pe exports
Write file on windows

Disassembly:
test dword [0x87ed4c], 0xfffff000
jne 0x52c170
test dword [0x87ed4c], 0xffffffff
jne 0x52c410
call fcn.007663a0
jmp fcn.0052c140
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x94
mov dword [esp + 0x20], eax
mov dword [0x84f850], 0
mov edx, eax
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x52c1b3
mov eax, edx
add edx, ecx
call fcn.007666f0
add eax, 5
push eax
call fcn.0074334f
pop ecx
mov ebx, eax
mov edi, dword [esp + 0x20]
mov esi, ebx
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x52c1c5
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x52c1f5
mov eax, edx
add edx, ecx
call fcn.007666f0
dec eax
je 0x52c20e
movsx edx, byte [eax + ebx]
cmp edx, 0x2e
je 0x52c20e
cmp edx, 0x2f
je 0x52c20e
cmp edx, 0x5c
je 0x52c20e
dec eax
jne 0x52c1f8
cmp byte [eax + ebx], 0x2e
jne 0x52c218
mov byte [eax + ebx], 0
mov edx, ebx
mov ecx, edx
and edx, 0xfffffff0
pxor xmm0, xmm0
pcmpeqb xmm0, xmmword [edx]
pmovmskb eax, xmm0
and ecx, 0xf
shr eax, cl
bsf eax, eax
jne 0x52c23e
mov eax, edx
add edx, ecx
call fcn.007666f0
add eax, 5
push eax
call fcn.0074334f
mov edi, eax
push ebx
push str._s.shp
push edi
call fcn.00743412
push 0x794a3c
push edi
call fcn.007436ae
add esp, 0x18
mov esi, eax
test esi, esi
je 0x52c3fe
push ebx
push str._s.shx
push edi
call fcn.00743412
push 0x794a3c
push edi
call fcn.007436ae
add esp, 0x14
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x1c], 0
je 0x52c3fe
push edi
call fcn.00743035
push ebx
call fcn.00743035
add esp, 8
xor eax, eax
xor edx, edx
pxor xmm0, xmm0
pshufd xmm0, xmm0, 0
movdqa xmmword [esp + eax + 0x30], xmm0
movdqa xmmword [esp + eax + 0x40], xmm0
add eax, 0x20
cmp eax, 0x60
jb 0x52c2b2
mov byte [esp + 0x90], dl
mov byte [esp + 0x91], dl
mov byte [esp + 0x92], dl
mov byte [esp + 0x93], dl
mov byte [esp + 0x32], 0x27
mov byte [esp + 0x33], 0xa
mov dword [esp + 0x18], 0x32
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
movzx edx, byte [esp + 0x48]
movzx eax, byte [esp + 0x4b]
movzx ebx, byte [esp + 0x49]
movzx ecx, byte [esp + 0x4a]
mov byte [esp + 0x48], al
mov byte [esp + 0x4b], dl
mov byte [esp + 0x49], cl
mov byte [esp + 0x4a], bl
mov dword [esp + 0x18], 0x3e8
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x18], 3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x50], eax
xorps xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movsd xmm1, qword [esp + 0x10]
movsd qword [esp + 0x54], xmm1
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x5c], xmm0
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x64], xmm0
movsd xmm0, qword [esp + 0x10]
movsd qword [esp + 0x6c], xmm0
lea eax, [esp + 0x30]
push esi
push 1
push 0x64
push eax
call fcn.00742cfc
add esp, 0x10
mov dword [esp + 0x18], 0x32
mov eax, dword [esp + 0x18]
mov dword [esp + 0x48], eax
movzx edx, byte [esp + 0x48]
movzx eax, byte [esp + 0x4b]
movzx ebx, byte [esp + 0x49]
movzx ecx, byte [esp + 0x4a]
mov byte [esp + 0x48], al
mov byte [esp + 0x4b], dl
mov byte [esp + 0x49], cl
mov byte [esp + 0x4a], bl
push dword [esp + 0x1c]
push 1
push 0x64
lea eax, [esp + 0x3c]
push eax
call fcn.00742cfc
push esi
call fcn.00742b21
push dword [esp + 0x30]
call fcn.00742b21
add esp, 0x18
mov eax, dword [esp + 0x20]
mov edx, 0x78d3b4
call fcn.0052c690
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
push ebp
mov ebp, esp
and esp, 0xfffffff0
push edi
push esi
push ebx
sub esp, 0x94
mov dword [esp + 0x84], eax
mov dword [0x84f850], 0
mov ecx, eax
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x52c449
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x52c434
dec eax
add eax, 5
push eax
call fcn.0074334f
pop ecx
mov ebx, eax
mov esi, ebx
mov edi, dword [esp + 0x84]
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x52c45e
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x52c481
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x52c46c
dec eax
dec eax
je 0x52c49a
movsx edx, byte [eax + ebx]
cmp edx, 0x2e
je 0x52c49a
cmp edx, 0x2f
je 0x52c49a
cmp edx, 0x5c
je 0x52c49a
dec eax
jne 0x52c484
cmp byte [eax + ebx], 0x2e
jne 0x52c4a4
mov byte [eax + ebx], 0
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x52c4bd
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x52c4a8
dec eax
add eax, 5
push eax
call fcn.0074334f
mov edi, eax
push ebx
push str._s.shp
push edi
call fcn.00743412
push 0x794a3c
push edi
call fcn.007436ae
add esp, 0x18
mov esi, eax
test esi, esi
je 0x52c67d
push ebx
push str._s.shx
push edi
call fcn.00743412
push 0x794a3c
push edi
call fcn.007436ae
add esp, 0x14
mov dword [esp + 0x80], eax
cmp dword [esp + 0x80], 0
je 0x52c67d
push edi
call fcn.00743035
push ebx
call fcn.00743035
add esp, 8
xor eax, eax
mov edx, 0x64
mov dword [esp + edx + 0xc], eax
mov dword [esp + edx + 8], eax
mov dword [esp + edx + 4], eax
mov dword [esp + edx], eax
mov dword [esp + edx - 4], eax
sub edx, 0x14
jne 0x52c531
mov byte [esp + 0x12], 0x27
mov byte [esp + 0x13], 0xa
mov dword [esp + 0x74], 0x32
mov edx, dword [esp + 0x74]
mov dword [esp + 0x28], edx
movzx ecx, byte [esp + 0x28]
movzx edx, byte [esp + 0x2b]
mov byte [esp + 0x28], dl
mov byte [esp + 0x2b], cl
movzx edx, byte [esp + 0x29]
movzx ebx, byte [esp + 0x2a]
mov byte [esp + 0x29], bl
mov byte [esp + 0x2a], dl
mov dword [esp + 0x74], 0x3e8
mov edx, dword [esp + 0x74]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x74], 3
mov edx, dword [esp + 0x74]
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x38], edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x48], edx
mov eax, dword [esp + 0x78]
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x50], edx
lea eax, [esp + 0x10]
push esi
push 1
push 0x64
push eax
call fcn.00742cfc
add esp, 0x10
mov dword [esp + 0x74], 0x32
mov eax, dword [esp + 0x74]
mov dword [esp + 0x28], eax
movzx edx, byte [esp + 0x28]
movzx eax, byte [esp + 0x2b]
mov byte [esp + 0x28], al
mov byte [esp + 0x2b], dl
movzx ebx, byte [esp + 0x29]
movzx ecx, byte [esp + 0x2a]
mov byte [esp + 0x29], cl
mov byte [esp + 0x2a], bl
push dword [esp + 0x80]
push 1
push 0x64
lea eax, [esp + 0x1c]
push eax
call fcn.00742cfc
push esi
call fcn.00742b21
push dword [esp + 0x94]
call fcn.00742b21
add esp, 0x18
mov eax, dword [esp + 0x84]
mov edx, 0x78d3b4
call fcn.0052c690
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
add esp, 0x94
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret