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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov eax, dword [0x557008]
xor eax, ebp
mov dword [esp + 0x98], eax
mov dword [esp + 0x34], 0xffffffff
mov ebx, 0xffffff9a
test ecx, ecx
jne 0x513986
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.004a927c
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, ecx
mov dword [esp + 0x20], edx
mov eax, dword [ecx + 0x48]
add eax, dword [ecx + 0x58]
mov ecx, dword [ecx + 0x4c]
adc ecx, dword [esi + 0x5c]
push 0
push ecx
push eax
push dword [esi + 0x30]
push esi
call fcn.0051c9e0
add esp, 0x14
xor edi, edi
dec edi
mov ecx, edi
test eax, eax
jne 0x5139db
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x34]
mov ecx, esi
push eax
call fcn.00514af0
add esp, 4
mov ecx, edi
test eax, eax
jne 0x5139db
xor eax, eax
cmp dword [esp + 0x34], 0x2014b50
mov ecx, 0xffffff99
cmove ecx, eax
mov dword [esp + 0xc], ecx
lea eax, [esp + 0x70]
mov dword [eax + 0x24], edi
mov dword [eax + 0x20], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [eax + 0x10], xmm0
movdqa xmmword [eax], xmm0
movdqa xmmword [eax - 0x10], xmm0
movdqa xmmword [eax - 0x20], xmm0
movdqa xmmword [eax - 0x30], xmm0
lea eax, [esp + 0x30]
mov dword [eax], edi
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov ebx, eax
lea eax, [esp + 0x44]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov edi, eax
or edi, ebx
lea eax, [esp + 0x48]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov dword [esp + 8], eax
lea ebx, [esp + 0x4c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push ebx
call fcn.00515030
add esp, 4
or eax, dword [esp + 8]
or eax, edi
mov dword [esp + 8], eax
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x50]
push eax
call fcn.00514af0
add esp, 4
mov edi, eax
mov eax, dword [ebx + 4]
mov ecx, eax
shr ecx, 0x10
and ecx, 0x1f
mov dword [ebx + 0x40], ecx
mov ecx, eax
shr ecx, 0x15
and ecx, 0xf
dec ecx
mov dword [ebx + 0x44], ecx
mov ecx, eax
shr ecx, 0x19
add ecx, 0x7bc
mov dword [ebx + 0x48], ecx
mov ecx, eax
shr ecx, 0xb
and ecx, 0x1f
mov dword [ebx + 0x3c], ecx
mov ecx, eax
shr ecx, 5
and ecx, 0x3f
mov dword [ebx + 0x38], ecx
add eax, eax
and eax, 0x3e
mov dword [ebx + 0x34], eax
lea eax, [esp + 0x54]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00514af0
add esp, 4
mov ebx, eax
or ebx, edi
mov edx, dword [esi + 0x30]
mov ecx, esi
lea edi, [esp + 0x30]
push edi
call fcn.00514af0
add esp, 4
or eax, ebx
or eax, dword [esp + 8]
mov dword [esp + 8], eax
mov eax, dword [edi]
lea ecx, [esp + 0x54]
mov dword [ecx + 4], eax
xor eax, eax
mov dword [ecx + 8], eax
mov edx, dword [esi + 0x30]
mov ecx, esi
push edi
call fcn.00514af0
add esp, 4
mov ebx, eax
mov eax, dword [edi]
xor ecx, ecx
lea edx, [esp + 0x54]
mov dword [edx + 0x10], ecx
mov dword [edx + 0xc], eax
lea eax, [esp + 0x68]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov edi, eax
or edi, ebx
lea eax, [esp + 0x6c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov ebx, eax
or ebx, edi
mov edx, dword [esi + 0x30]
mov ecx, esi
lea eax, [esp + 0x70]
push eax
call fcn.00515030
add esp, 4
mov edi, eax
or edi, ebx
or edi, dword [esp + 8]
lea eax, [esp + 0x74]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov dword [esp + 8], eax
lea eax, [esp + 0x78]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
mov ebx, eax
or ebx, dword [esp + 8]
or ebx, edi
lea eax, [esp + 0x7c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00514af0
add esp, 4
mov edi, eax
mov edx, dword [esi + 0x30]
mov dword [esp + 0x10], esi
mov ecx, esi
lea esi, [esp + 0x30]
push esi
call fcn.00514af0
add esp, 4
or eax, edi
or eax, ebx
mov ebx, dword [esp + 0xc]
mov eax, 0xffffffff
cmovne ebx, eax
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x7c]
mov esi, dword [eax - 0x14]
cmp dword [ebp + 0xc], 0
je 0x513c3a
test ebx, ebx
jne 0x513c3a
mov eax, dword [ebp + 0x10]
mov edi, eax
cmp esi, eax
jae 0x513bfe
mov eax, dword [ebp + 0xc]
mov byte [eax + esi], 0
mov edi, esi
xor ebx, ebx
cmp dword [ebp + 0x10], 0
je 0x513c38
test esi, esi
je 0x513c38
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 4]
mov ebx, dword [eax + 0x1c]
call dword [section..00cfg]
push edi
push dword [ebp + 0xc]
push dword [esp + 0x14]
push ebx
call ecx
add esp, 0x10
xor ebx, ebx
cmp eax, edi
setne bl
neg ebx
sub esi, edi
mov ecx, dword [esp + 0x6c]
cmp dword [ebp + 0x14], 0
je 0x513cdf
test ebx, ebx
jne 0x513cdf
mov edx, dword [ebp + 0x18]
cmp ecx, edx
mov edi, edx
cmovb edi, ecx
test esi, esi
je 0x513cd9
mov eax, esi
sar eax, 0x1f
push 1
push eax
push esi
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
mov ebx, ecx
call fcn.0051c9e0
mov edx, dword [ebp + 0x18]
mov ecx, ebx
add esp, 0x14
xor ebx, ebx
test eax, eax
setne bl
cmove esi, eax
neg ebx
mov eax, esi
test edx, edx
je 0x513cd1
test ecx, ecx
je 0x513cd1
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x30]
mov dword [esp + 0x1c], edx
mov dword [esp + 8], ecx
mov ecx, dword [eax + 4]
mov esi, dword [eax + 0x1c]
call dword [section..00cfg]
push edi
push dword [ebp + 0x14]
push dword [esp + 0x24]
push esi
call ecx
add esp, 0x10
xor ecx, ecx
dec ecx
cmp eax, edi
mov eax, dword [esp + 0xc]
cmovne ebx, ecx
mov ecx, dword [esp + 8]
mov esi, ecx
sub esi, edi
add esi, eax
jmp 0x513ce1
xor ebx, ebx
xor eax, eax
jmp 0x513c8c
add esi, ecx
mov edi, dword [esp + 0x10]
test ebx, ebx
jne 0x513ea6
test ecx, ecx
je 0x513ea6
mov dword [esp + 0xc], 0
mov ebx, 0
mov eax, 0
sub esi, ecx
je 0x513d32
mov eax, esi
sar eax, 0x1f
push 1
push eax
push esi
push dword [edi + 0x30]
push edi
mov ebx, ecx
call fcn.0051c9e0
mov ecx, ebx
add esp, 0x14
xor ebx, ebx
test eax, eax
setne bl
cmove esi, eax
neg ebx
mov eax, esi
mov dword [esp + 0x1c], eax
jmp 0x513df7
mov dword [esp + 0x14], esi
mov esi, dword [edi + 0x30]
mov byte [esp + 0x24], 0xff
mov ecx, dword [edi + 4]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push 1
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x20], esi
push esi
push ebx
call ecx
add esp, 0x10
cmp eax, 1
jne 0x513d7f
cmp byte [esp + 0x24], 1
mov esi, dword [esp + 0x14]
je 0x513ff3
mov edi, dword [esp + 0x10]
jmp 0x513da4
mov ecx, dword [edi + 0x18]
mov ebx, dword [edi + 0x1c]
call dword [section..00cfg]
push dword [esp + 0x18]
push ebx
call ecx
add esp, 8
neg eax
mov eax, 0
sbb eax, eax
mov esi, dword [esp + 0x14]
or esi, eax
mov ecx, dword [esp + 0x28]
lea eax, [ecx - 1]
push 1
push 0
push eax
push dword [edi + 0x30]
push edi
mov edi, ecx
jmp 0x513dc7
mov eax, dword [esp + 0x28]
push 1
push 0
push eax
push dword [edi + 0x30]
push edi
mov edi, eax
call fcn.0051c9e0
add esp, 0x14
neg eax
mov ebx, 0
sbb ebx, ebx
or ebx, esi
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
add eax, edi
add eax, 4
mov dword [esp + 0xc], eax
cmp eax, ecx
mov edi, dword [esp + 0x10]
jae 0x513ea2
mov dword [esp + 8], ecx
xor eax, eax
dec eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov edx, dword [edi + 0x30]
mov ecx, edi
lea eax, [esp + 0x2c]
push eax
call fcn.00515030
add esp, 4
mov esi, eax
mov edx, dword [edi + 0x30]
mov ecx, edi
lea eax, [esp + 0x28]
push eax
call fcn.00515030
add esp, 4
or eax, esi
mov esi, ebx
mov eax, 0xffffffff
cmovne esi, eax
mov eax, dword [esp + 0x2c]
cmp eax, 0x7075
je 0x513d3b
cmp eax, 1
jne 0x513db8
mov eax, dword [esp + 0x60]
not eax
or eax, dword [esp + 0x64]
je 0x513fd1
mov eax, dword [esp + 0x58]
not eax
or eax, dword [esp + 0x5c]
je 0x513faf
mov eax, dword [esp + 0x38]
not eax
or eax, dword [esp + 0x3c]
je 0x513f8d
cmp dword [esp + 0x74], 0xffffffff
je 0x513f6b
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov ebx, esi
mov eax, dword [esp + 0xc]
jmp 0x513de2
xor esi, esi
jmp 0x513ef1
mov esi, dword [esp + 0x1c]
cmp dword [ebp + 0x1c], 0
je 0x513f30
test ebx, ebx
jne 0x513f30
mov edi, dword [ebp + 0x20]
mov ebx, dword [esp + 0x70]
mov eax, edi
cmp ebx, edi
jae 0x513eca
mov eax, dword [ebp + 0x1c]
mov byte [eax + ebx], 0
mov eax, ebx
mov dword [esp + 0xc], eax
test esi, esi
je 0x513e9e
mov eax, esi
sar eax, 0x1f
push 1
push eax
push esi
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
call fcn.0051c9e0
add esp, 0x14
xor esi, esi
neg eax
sbb esi, esi
test edi, edi
je 0x513f2e
test ebx, ebx
je 0x513f2e
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x30]
mov dword [esp + 8], ecx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x1c]
call dword [section..00cfg]
mov ebx, dword [esp + 0xc]
push ebx
push dword [ebp + 0x1c]
push dword [esp + 0x10]
push edi
call ecx
add esp, 0x10
xor ecx, ecx
dec ecx
cmp eax, ebx
mov ebx, esi
cmovne ebx, ecx
jmp 0x513f30
mov ebx, esi
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x513f4a
test ebx, ebx
jne 0x513f4a
lea esi, [esp + 0x40]
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
test eax, eax
je 0x51396e
test ebx, ebx
jne 0x51396e
movq xmm0, qword [esp + 0x38]
movq qword [eax], xmm0
xor ebx, ebx
jmp 0x51396e
mov edx, dword [edi + 0x30]
mov ecx, edi
lea eax, [esp + 0x24]
push eax
call fcn.00514af0
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or esi, eax
jmp 0x513e8b
mov edx, dword [edi + 0x30]
mov ecx, edi
lea eax, [esp + 0x38]
push eax
call fcn.00514ca0
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or esi, eax
jmp 0x513e80
mov edx, dword [edi + 0x30]
mov ecx, edi
lea eax, [esp + 0x58]
push eax
call fcn.00514ca0
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or esi, eax
jmp 0x513e70
mov edx, dword [edi + 0x30]
mov ecx, edi
lea eax, [esp + 0x60]
push eax
call fcn.00514ca0
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or esi, eax
jmp 0x513e60
mov dword [esp + 0x24], 0xffffffff
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x24]
push eax
call fcn.00514af0
add esp, 4
neg eax
mov ebx, 0
sbb ebx, ebx
or ebx, esi
push dword [esp + 0x68]
push dword [ebp + 0xc]
push 0
call fcn.00432120
add esp, 0xc
mov edi, dword [esp + 0x28]
lea ecx, [edi - 5]
cmp eax, dword [esp + 0x24]
je 0x51405d
push 1
push 0
push ecx
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
call fcn.0051c9e0
add esp, 0x14
neg eax
mov eax, 0
sbb eax, eax
or ebx, eax
jmp 0x513dda
mov eax, dword [ebp + 0x10]
mov esi, eax
cmp ecx, eax
jae 0x51406f
mov eax, dword [ebp + 0xc]
mov byte [eax + ecx], 0
mov esi, ecx
cmp dword [ebp + 0x10], 0
je 0x513dda
test ecx, ecx
je 0x513dda
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x18], eax
call dword [section..00cfg]
push esi
push dword [ebp + 0xc]
push dword [esp + 0x1c]
push dword [esp + 0x24]
call ecx
add esp, 0x10
cmp eax, esi
mov eax, 0xffffffff
cmovne ebx, eax
jmp 0x513dda