Function at 0x507070
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 esi, ecx
mov eax, dword [0x550014]
xor eax, ebp
mov dword [esp + 0x98], eax
xor ebx, ebx
dec ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x90], ebx
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x80], xmm0
movdqa xmmword [esp + 0x70], xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov ecx, 0xffffff9a
test esi, esi
jne 0x5070f0
mov esi, ecx
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.0049b033
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x20], edx
mov eax, dword [esi + 0x48]
add eax, dword [esi + 0x58]
mov ecx, dword [esi + 0x4c]
adc ecx, dword [esi + 0x5c]
push 0
push ecx
push eax
push dword [esi + 0x30]
push esi
call fcn.00516130
add esp, 0x14
mov ecx, ebx
test eax, eax
jne 0x507140
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x34]
mov ecx, esi
push eax
call fcn.005082a0
add esp, 4
mov ecx, ebx
test eax, eax
jne 0x507140
xor eax, eax
cmp dword [esp + 0x34], 0x2014b50
mov ecx, 0xffffff99
cmove ecx, eax
mov dword [esp + 0xc], ecx
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
mov dword [esp + 8], eax
lea eax, [esp + 0x44]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
mov edi, eax
or edi, dword [esp + 8]
lea eax, [esp + 0x48]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
mov dword [esp + 8], eax
lea eax, [esp + 0x4c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
or eax, dword [esp + 8]
or eax, edi
mov dword [esp + 8], eax
lea edi, [esp + 0x50]
mov edx, dword [esi + 0x30]
mov ecx, esi
push edi
call fcn.005082a0
add esp, 4
mov dword [esp + 0x14], eax
mov eax, dword [edi]
mov ecx, eax
shr ecx, 0x10
and ecx, 0x1f
mov dword [edi + 0x3c], ecx
mov ecx, eax
shr ecx, 0x15
and ecx, 0xf
dec ecx
mov dword [edi + 0x40], ecx
mov ecx, eax
shr ecx, 0x19
add ecx, 0x7bc
mov dword [edi + 0x44], ecx
mov ecx, eax
shr ecx, 0xb
and ecx, 0x1f
mov dword [edi + 0x38], ecx
mov ecx, eax
shr ecx, 5
and ecx, 0x3f
mov dword [edi + 0x34], ecx
add eax, eax
and eax, 0x3e
mov dword [edi + 0x30], eax
lea eax, [esp + 0x54]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.005082a0
add esp, 4
mov edi, eax
or edi, dword [esp + 0x14]
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x30]
mov ecx, esi
push eax
call fcn.005082a0
add esp, 4
or eax, edi
or eax, dword [esp + 8]
mov dword [esp + 8], eax
lea edi, [esp + 0x30]
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.005082a0
add esp, 4
mov dword [esp + 0x14], 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.00508840
add esp, 4
or eax, dword [esp + 0x14]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x6c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
mov edi, eax
or edi, dword [esp + 0x14]
lea eax, [esp + 0x70]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
or eax, edi
or eax, dword [esp + 8]
mov dword [esp + 8], eax
lea eax, [esp + 0x74]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
mov dword [esp + 0x14], eax
lea eax, [esp + 0x78]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.00508840
add esp, 4
mov edi, eax
or edi, dword [esp + 0x14]
or edi, dword [esp + 8]
lea eax, [esp + 0x7c]
mov edx, dword [esi + 0x30]
mov ecx, esi
push eax
call fcn.005082a0
add esp, 4
mov dword [esp + 8], eax
mov edx, dword [esi + 0x30]
mov dword [esp + 0x10], esi
mov ecx, esi
lea esi, [esp + 0x30]
push esi
call fcn.005082a0
add esp, 4
or eax, dword [esp + 8]
or eax, edi
cmove ebx, dword [esp + 0xc]
xor eax, eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x7c]
mov edi, dword [eax - 0x14]
cmp dword [ebp + 0xc], 0
je 0x507387
test ebx, ebx
jne 0x507387
mov eax, dword [ebp + 0x10]
mov esi, eax
cmp edi, eax
jae 0x50734b
mov eax, dword [ebp + 0xc]
mov byte [eax + edi], 0
mov esi, edi
xor ebx, ebx
cmp dword [ebp + 0x10], 0
je 0x507385
test edi, edi
je 0x507385
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 esi
push dword [ebp + 0xc]
push dword [esp + 0x14]
push ebx
call ecx
add esp, 0x10
xor ebx, ebx
cmp eax, esi
setne bl
neg ebx
sub edi, esi
mov ecx, dword [esp + 0x6c]
cmp dword [ebp + 0x14], 0
je 0x50742a
test ebx, ebx
jne 0x50742a
mov edx, dword [ebp + 0x18]
cmp ecx, edx
mov esi, edx
cmovb esi, ecx
test edi, edi
je 0x5076bf
mov eax, edi
sar eax, 0x1f
push 1
push eax
push edi
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
mov ebx, ecx
call fcn.00516130
mov edx, dword [ebp + 0x18]
mov ecx, ebx
add esp, 0x14
xor ebx, ebx
test eax, eax
setne bl
cmove edi, eax
neg ebx
mov eax, edi
test edx, edx
je 0x507422
test ecx, ecx
je 0x507422
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x30]
mov dword [esp + 0x14], edx
mov dword [esp + 8], ecx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x1c]
call dword [section..00cfg]
push esi
push dword [ebp + 0x14]
push dword [esp + 0x1c]
push edi
call ecx
add esp, 0x10
xor ecx, ecx
dec ecx
cmp eax, esi
mov eax, dword [esp + 0xc]
cmovne ebx, ecx
mov ecx, dword [esp + 8]
mov edi, ecx
sub edi, esi
add edi, eax
jmp 0x50742c
add edi, ecx
mov eax, dword [ebp + 0x1c]
test ebx, ebx
jne 0x5075f4
test ecx, ecx
je 0x5075f4
xor ebx, ebx
mov dword [esp + 0xc], 0
mov eax, 0
sub edi, ecx
je 0x507481
mov eax, edi
sar eax, 0x1f
push 1
push eax
push edi
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
mov esi, ecx
call fcn.00516130
mov ecx, esi
add esp, 0x14
xor edx, edx
test eax, eax
setne dl
cmove edi, eax
neg edx
mov dword [esp + 0xc], edx
mov eax, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 8], ecx
mov dword [esp + 0x14], ebx
xor esi, esi
dec esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], esi
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x30]
mov ecx, ebx
lea eax, [esp + 0x2c]
push eax
call fcn.00508840
add esp, 4
mov edi, eax
mov edx, dword [ebx + 0x30]
mov ecx, ebx
lea eax, [esp + 0x28]
push eax
call fcn.00508840
add esp, 4
or eax, edi
mov edi, dword [esp + 0xc]
cmovne edi, esi
mov eax, dword [esp + 0x2c]
cmp eax, 0x7075
je 0x50752b
cmp eax, 1
jne 0x507573
mov eax, dword [esp + 0x60]
not eax
or eax, dword [esp + 0x64]
je 0x5076cf
mov eax, dword [esp + 0x58]
not eax
or eax, dword [esp + 0x5c]
je 0x5076f3
mov eax, dword [esp + 0x38]
not eax
or eax, dword [esp + 0x3c]
je 0x507717
cmp dword [esp + 0x74], 0xffffffff
je 0x50773b
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0xc], edi
jmp 0x5075d6
mov dword [esp + 0xc], edi
mov esi, dword [esp + 0x10]
mov edi, dword [esi + 0x30]
mov byte [esp + 0x24], 0xff
mov ecx, dword [esi + 4]
mov ebx, dword [esi + 0x1c]
call dword [section..00cfg]
push 1
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x20], edi
push edi
push ebx
call ecx
add esp, 0x10
cmp eax, 1
jne 0x507586
cmp byte [esp + 0x24], 1
mov edi, dword [esp + 0xc]
je 0x50775f
mov esi, dword [esp + 0x10]
jmp 0x5075ab
mov ebx, dword [esp + 0x28]
push 1
push 0
push ebx
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
jmp 0x5075bb
mov ecx, dword [esi + 0x18]
mov ebx, dword [esi + 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 edi, dword [esp + 0xc]
or edi, eax
mov ebx, dword [esp + 0x28]
lea eax, [ebx - 1]
push 1
push 0
push eax
push dword [esi + 0x30]
push esi
call fcn.00516130
add esp, 0x14
neg eax
mov eax, 0
sbb eax, eax
or eax, edi
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x14]
add ebx, eax
add ebx, 4
cmp ebx, ecx
jb 0x507485
mov edi, dword [esp + 0x1c]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [esp + 0xc]
jmp 0x5075f6
mov ecx, ebx
test eax, eax
je 0x507680
test ecx, ecx
jne 0x507680
mov esi, dword [ebp + 0x20]
mov ebx, dword [esp + 0x70]
mov eax, esi
cmp ebx, esi
jae 0x507618
mov eax, dword [ebp + 0x1c]
mov byte [eax + ebx], 0
mov eax, ebx
mov dword [esp + 0xc], eax
test edi, edi
je 0x5076c8
mov eax, edi
sar eax, 0x1f
push 1
push eax
push edi
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
call fcn.00516130
add esp, 0x14
xor ecx, ecx
neg eax
sbb ecx, ecx
test esi, esi
je 0x507680
test ebx, ebx
je 0x507680
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x30]
mov dword [esp + 8], edx
mov ebx, ecx
mov ecx, dword [eax + 4]
mov edi, dword [eax + 0x1c]
call dword [section..00cfg]
mov esi, dword [esp + 0xc]
push esi
push dword [ebp + 0x1c]
push dword [esp + 0x10]
push edi
call ecx
add esp, 0x10
xor ecx, ecx
dec ecx
cmp eax, esi
cmovne ebx, ecx
mov ecx, ebx
mov eax, dword [ebp + 8]
mov edi, dword [esp + 0x20]
test edi, edi
je 0x50769e
test ecx, ecx
jne 0x50769e
lea esi, [esp + 0x40]
mov edx, ecx
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
test eax, eax
je 0x5070d6
test ecx, ecx
jne 0x5070d6
movq xmm0, qword [esp + 0x38]
movq qword [eax], xmm0
xor ecx, ecx
jmp 0x5070d6
xor ebx, ebx
xor eax, eax
jmp 0x5073dd
xor ecx, ecx
jmp 0x507643
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x60]
push eax
call fcn.00508470
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or edi, eax
jmp 0x5074ef
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x58]
push eax
call fcn.00508470
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or edi, eax
jmp 0x5074ff
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x38]
push eax
call fcn.00508470
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or edi, eax
jmp 0x50750f
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x24]
push eax
call fcn.005082a0
add esp, 4
neg eax
mov eax, 0
sbb eax, eax
or edi, eax
jmp 0x50751a
mov dword [esp + 0x24], 0xffffffff
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x30]
lea eax, [esp + 0x24]
push eax
call fcn.005082a0
add esp, 4
neg eax
mov esi, 0
sbb esi, esi
or esi, edi
push dword [esp + 0x68]
push dword [ebp + 0xc]
push 0
call fcn.0042cc40
add esp, 0xc
mov ebx, dword [esp + 0x28]
lea ecx, [ebx - 5]
cmp eax, dword [esp + 0x24]
jne 0x507808
mov dword [esp + 0xc], esi
mov eax, dword [ebp + 0x10]
mov edi, eax
cmp ecx, eax
jae 0x5077ba
mov eax, dword [ebp + 0xc]
mov byte [eax + ecx], 0
mov edi, ecx
cmp dword [ebp + 0x10], 0
je 0x5075d2
test ecx, ecx
je 0x5075d2
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x30]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x18], eax
call dword [section..00cfg]
push edi
push dword [ebp + 0xc]
push esi
push dword [esp + 0x24]
call ecx
add esp, 0x10
cmp eax, edi
mov eax, 0xffffffff
mov ecx, dword [esp + 0xc]
cmovne ecx, eax
mov dword [esp + 0xc], ecx
jmp 0x5075d2
push 1
push 0
push ecx
mov eax, dword [esp + 0x1c]
push dword [eax + 0x30]
push eax
call fcn.00516130
add esp, 0x14
neg eax
mov eax, 0
sbb eax, eax
or esi, eax
mov dword [esp + 0xc], esi
jmp 0x5075d2