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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov edi, edx
mov esi, ecx
mov eax, dword [0x557008]
xor eax, ebp
mov dword [esp + 0x158], eax
lea ebx, [esp + 0x50]
push 0x100
push 0xff
push ebx
call fcn.004acae0
add esp, 0xc
xor eax, eax
dec eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x24], eax
test edi, edi
je 0x512f73
movups xmm0, xmmword [edi + 0x1c]
movups xmmword [esp + 0x6c], xmm0
movups xmm0, xmmword [edi]
movups xmm1, xmmword [edi + 0x10]
movaps xmmword [esp + 0x60], xmm1
movaps xmmword [esp + 0x50], xmm0
mov edi, ebx
mov eax, dword [ebp + 8]
mov dword [esp + 0x7c], eax
push 5
push esi
push ebx
call fcn.0051c9b0
add esp, 0xc
mov dword [esp + 0x80], eax
xor ebx, ebx
test eax, eax
jne 0x512f7e
mov ecx, dword [esp + 0x158]
xor ecx, ebp
call fcn.004a927c
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call fcn.0051caf0
add esp, 4
jmp 0x512f39
mov ecx, eax
xor eax, eax
dec eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
xor eax, eax
push 2
push eax
push eax
push ecx
push edi
mov esi, ecx
call fcn.0051c9e0
add esp, 0x14
test eax, eax
jne 0x513116
push esi
lea eax, [esp + 0x54]
push eax
call fcn.0051ca40
add esp, 8
mov ecx, 0xffff
cmp eax, ecx
mov edi, 0xffff
mov dword [esp + 0x20], eax
cmovb edi, eax
mov dword [esp + 0x1c], edx
test edx, edx
cmovne edi, ecx
mov dword [esp + 0x10], edi
push 0x404
call fcn.00460200
add esp, 4
test eax, eax
je 0x513116
mov ebx, eax
mov dword [esp + 4], esi
mov edi, 4
mov dword [esp + 8], 0
jmp 0x51301b
xor edx, edx
xor ecx, ecx
mov eax, edx
or eax, ecx
jne 0x51350a
cmp edi, dword [esp + 0x10]
mov eax, dword [esp + 8]
sbb eax, 0
jae 0x51310d
add edi, 0x400
mov edx, 0
mov ecx, dword [esp + 8]
adc ecx, edx
mov esi, dword [esp + 0x10]
cmp edi, esi
mov eax, ecx
sbb eax, edx
cmovae ecx, edx
cmovae edi, esi
mov eax, dword [esp + 0x20]
sub eax, edi
mov edx, edi
mov edi, dword [esp + 0x1c]
sbb edi, ecx
mov esi, 0x404
cmp edx, esi
cmovb esi, edx
mov dword [esp + 8], ecx
test ecx, ecx
mov ecx, 0x404
cmovne esi, ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x18], edi
push edi
mov edi, edx
mov dword [esp + 0x20], eax
push eax
push dword [esp + 0x10]
lea eax, [esp + 0x60]
push eax
call fcn.0051c9e0
add esp, 0x14
test eax, eax
jne 0x51310d
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xc], eax
call dword [section..00cfg]
push esi
push ebx
push dword [esp + 0xc]
push dword [esp + 0x18]
call ecx
add esp, 0x10
cmp eax, esi
jne 0x51310d
xor edx, edx
mov ecx, 0
cmp esi, 4
jb 0x513011
add esi, 0xfffffffc
jmp 0x5130de
lea eax, [esi - 1]
test esi, esi
mov esi, eax
jle 0x51300d
cmp byte [ebx + esi], 0x50
jne 0x5130d1
cmp byte [ebx + esi + 1], 0x4b
jne 0x5130d1
cmp byte [ebx + esi + 2], 6
jne 0x5130d1
cmp byte [ebx + esi + 3], 7
jne 0x5130d1
mov eax, dword [esp + 0x18]
add eax, esi
mov ecx, dword [esp + 0x14]
adc ecx, 0
mov edx, eax
jmp 0x513011
push ebx
call fcn.00460250
add esp, 4
mov esi, dword [esp + 0x80]
xor eax, eax
push 2
push eax
push eax
push esi
lea edi, [esp + 0x60]
push edi
call fcn.0051c9e0
add esp, 0x14
mov edx, 0
mov ecx, 0
test eax, eax
jne 0x5132ad
push esi
push edi
call fcn.0051ca40
add esp, 8
mov ecx, 0xffff
cmp eax, ecx
mov ebx, 0xffff
mov dword [esp + 0x14], eax
cmovb ebx, eax
mov dword [esp + 0x20], edx
test edx, edx
cmovne ebx, ecx
mov dword [esp + 8], 0
push 0x404
call fcn.00460200
add esp, 4
test eax, eax
je 0x513290
mov edi, eax
mov dword [esp + 0x1c], esi
mov ecx, 4
mov dword [esp + 0x24], ebx
jmp 0x5131a9
xor edx, edx
xor esi, esi
mov eax, edx
or eax, esi
mov ebx, dword [esp + 0x24]
jne 0x51329a
cmp ecx, ebx
mov edx, dword [esp + 8]
mov eax, edx
sbb eax, 0
jae 0x513296
xor esi, esi
add ecx, 0x400
adc edx, esi
cmp ecx, ebx
mov eax, edx
sbb eax, esi
cmovae edx, esi
cmovae ecx, ebx
mov eax, dword [esp + 0x14]
sub eax, ecx
mov esi, dword [esp + 0x20]
sbb esi, edx
mov ebx, 0x404
cmp ecx, ebx
mov dword [esp + 0x10], ecx
cmovb ebx, ecx
mov dword [esp + 8], edx
test edx, edx
mov ecx, 0x404
cmovne ebx, ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x1c], esi
push esi
mov dword [esp + 0x14], eax
push eax
mov esi, dword [esp + 0x28]
push esi
lea eax, [esp + 0x60]
push eax
call fcn.0051c9e0
add esp, 0x14
test eax, eax
jne 0x513296
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
call dword [section..00cfg]
push ebx
push edi
push esi
push dword [esp + 0x10]
call ecx
add esp, 0x10
cmp eax, ebx
jne 0x513296
xor edx, edx
mov esi, 0
cmp ebx, 4
mov ecx, dword [esp + 0x10]
jb 0x51319b
add ebx, 0xfffffffc
jmp 0x513263
lea eax, [ebx - 1]
test ebx, ebx
mov ebx, eax
jle 0x513197
cmp byte [edi + ebx], 0x50
jne 0x513256
cmp byte [edi + ebx + 1], 0x4b
jne 0x513256
cmp byte [edi + ebx + 2], 5
jne 0x513256
cmp byte [edi + ebx + 3], 6
jne 0x513256
mov edx, dword [esp + 0xc]
add edx, ebx
mov esi, dword [esp + 0x18]
adc esi, 0
jmp 0x51319b
xor edx, edx
xor ecx, ecx
jmp 0x5132a9
xor edx, edx
xor esi, esi
push edi
mov edi, edx
call fcn.00460250
mov edx, edi
mov ecx, esi
add esp, 4
lea edi, [esp + 0x50]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
mov eax, edx
or eax, ecx
sete bl
lea esi, [esp + 0x90]
xor eax, eax
mov dword [esi + 0xa8], eax
push eax
push ecx
push edx
push dword [esi - 0x10]
push edi
call fcn.0051c9e0
add esp, 0x14
test eax, eax
setne al
or al, bl
mov byte [esp + 4], al
mov edx, dword [esi - 0x10]
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
call fcn.00514af0
add esp, 4
mov dword [esp + 0xc], eax
mov edx, dword [esi - 0x10]
lea eax, [esp + 0x38]
mov ecx, edi
push eax
call fcn.00515030
add esp, 4
mov dword [esp + 0x18], eax
mov edx, dword [esi - 0x10]
lea eax, [esp + 0x34]
mov ecx, edi
push eax
call fcn.00515030
add esp, 4
mov ebx, eax
mov edx, dword [esi - 0x10]
mov ecx, edi
lea eax, [esp + 0x3c]
push eax
call fcn.00515030
add esp, 4
mov ecx, edi
mov dword [esp + 0x14], eax
lea edi, [esp + 0x3c]
mov eax, dword [edi]
xor edx, edx
mov dword [esi - 4], edx
mov dword [esi - 8], eax
mov edx, dword [esi - 0x10]
push edi
call fcn.00515030
add esp, 4
or eax, dword [esp + 0x14]
or ebx, dword [esp + 0x18]
or ebx, eax
or ebx, dword [esp + 0xc]
setne al
or al, byte [esp + 4]
movzx ebx, al
neg ebx
mov eax, dword [esi - 8]
xor eax, dword [edi]
lea ecx, [esp + 0x34]
mov ecx, dword [ecx]
lea edx, [esp + 0x38]
or ecx, dword [edx]
mov ecx, 0xffffff99
cmovne ebx, ecx
or eax, dword [esi - 4]
cmovne ebx, ecx
mov edx, dword [esi - 0x10]
lea esi, [esp + 0x50]
mov ecx, esi
push edi
call fcn.00514af0
add esp, 4
mov dword [esp + 4], eax
mov eax, dword [edi]
xor edx, edx
lea ecx, [esp + 0x90]
mov dword [ecx + 0x34], edx
mov dword [ecx + 0x30], eax
mov edx, dword [ecx - 0x10]
mov ecx, esi
push edi
call fcn.00514af0
add esp, 4
mov dword [esp + 0xc], eax
mov eax, dword [edi]
lea ecx, [esp + 0x90]
xor edx, edx
mov dword [ecx + 0x3c], edx
mov dword [ecx + 0x38], eax
mov edx, dword [ecx - 0x10]
mov eax, ecx
mov ecx, esi
push eax
call fcn.00515030
add esp, 4
or eax, dword [esp + 0xc]
or eax, dword [esp + 4]
mov edi, 0xffffffff
cmove edi, ebx
mov eax, dword [esp + 0xc0]
add eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
adc ecx, dword [esp + 0xcc]
mov edx, dword [esp + 8]
mov ebx, edx
cmp edx, eax
mov edx, dword [esp + 0x10]
mov esi, edx
sbb edx, ecx
jb 0x5134e7
test edi, edi
jne 0x5134e7
mov edi, ebx
mov edx, ebx
sub edx, eax
mov eax, esi
sbb eax, ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], esi
xor ebx, ebx
mov dword [esp + 0x130], ebx
mov dword [esp + 0x134], ebx
push 0x100
call fcn.00460200
add esp, 4
mov esi, eax
test eax, eax
lea eax, [esp + 0x50]
je 0x512f5b
push 0x100
push eax
push esi
call fcn.004ac560
add esp, 0xc
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x7c]
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor edi, edi
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edi
lea eax, [esi + 0xd8]
mov edx, esi
sub edx, 0xffffff80
sub esp, 0x1c
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
xorps xmm0, xmm0
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov ecx, esi
call fcn.00513940
add esp, 0x1c
xor ecx, ecx
test eax, eax
sete cl
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], ecx
mov ebx, esi
jmp 0x512f5b
mov esi, dword [esp + 0x80]
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x6c]
call dword [section..00cfg]
push esi
push edi
call ecx
add esp, 8
xor ebx, ebx
jmp 0x512f5b
push ebx
mov esi, edx
mov edi, ecx
call fcn.00460250
add esp, 4
push 0
push edi
push esi
mov esi, dword [esp + 0x10]
push esi
lea eax, [esp + 0x60]
push eax
call fcn.0051c9e0
add esp, 0x14
test eax, eax
jne 0x513116
lea ebx, [esp + 0x4c]
lea ecx, [esp + 0x50]
mov edx, esi
push ebx
call fcn.00514af0
add esp, 4
test eax, eax
jne 0x513116
lea ecx, [esp + 0x50]
mov edx, esi
push ebx
call fcn.00514af0
add esp, 4
or eax, dword [esp + 0x4c]
jne 0x513116
lea edi, [esp + 0x40]
lea ecx, [esp + 0x50]
mov edx, esi
push edi
call fcn.00514ca0
add esp, 4
test eax, eax
jne 0x513116
lea ecx, [esp + 0x50]
mov edx, esi
push ebx
call fcn.00514af0
add esp, 4
test eax, eax
jne 0x513116
cmp dword [esp + 0x4c], 1
jne 0x513116
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
push 0
mov dword [esp + 0x14], eax
push eax
mov dword [esp + 0x10], ecx
push ecx
push esi
lea eax, [esp + 0x60]
push eax
call fcn.0051c9e0
add esp, 0x14
test eax, eax
jne 0x513116
lea ecx, [esp + 0x50]
mov edx, esi
push ebx
call fcn.00514af0
add esp, 4
test eax, eax
jne 0x513116
cmp dword [esp + 0x4c], 0x6064b50
jne 0x513116
mov eax, dword [esp + 8]
or eax, dword [esp + 0x10]
je 0x513116
lea ecx, [esp + 0x88]
mov dword [ecx + 0xb0], 1
xor eax, eax
push eax
push dword [esp + 0x14]
push dword [esp + 0x10]
push dword [ecx - 8]
lea esi, [esp + 0x60]
push esi
call fcn.0051c9e0
add esp, 0x14
mov dword [esp + 4], eax
lea eax, [esp + 0x88]
mov edx, dword [eax - 8]
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
call fcn.00514af0
add esp, 4
mov dword [esp + 0xc], eax
lea eax, [esp + 0x88]
mov edx, dword [eax - 8]
mov ecx, esi
push edi
call fcn.00514ca0
add esp, 4
mov dword [esp + 0x18], eax
lea edi, [esp + 0x88]
mov edx, dword [edi - 8]
mov ecx, esi
push ebx
call fcn.00515030
add esp, 4
mov dword [esp + 0x14], eax
mov edx, dword [edi - 8]
mov ecx, esi
push ebx
call fcn.00515030
add esp, 4
mov edi, eax
lea ebx, [esp + 0x88]
mov edx, dword [ebx - 8]
lea eax, [esp + 0x38]
mov ecx, esi
push eax
call fcn.00514af0
add esp, 4
mov dword [esp + 0x20], eax
mov edx, dword [ebx - 8]
lea eax, [esp + 0x34]
mov ecx, esi
push eax
call fcn.00514af0
add esp, 4
mov ebx, eax
lea eax, [esp + 0x88]
mov edx, dword [eax - 8]
mov ecx, esi
push eax
call fcn.00514ca0
add esp, 4
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x88]
mov edx, dword [eax - 8]
lea eax, [esp + 0x28]
mov ecx, esi
push eax
mov esi, eax
call fcn.00514ca0
add esp, 4
or eax, dword [esp + 0x1c]
or ebx, dword [esp + 0x20]
or ebx, eax
or edi, dword [esp + 0x14]
or edi, dword [esp + 0x18]
or edi, ebx
or edi, dword [esp + 0xc]
xor ebx, ebx
or edi, dword [esp + 4]
setne bl
mov eax, dword [esi]
mov ecx, dword [esi + 4]
lea edx, [esp + 0x88]
xor ecx, dword [edx + 4]
xor eax, dword [edx]
neg ebx
lea edx, [esp + 0x34]
mov edx, dword [edx]
lea esi, [esp + 0x38]
or edx, dword [esi]
mov edx, 0xffffff99
cmovne ebx, edx
or eax, ecx
cmovne ebx, edx
lea eax, [esp + 0xc0]
mov edx, dword [eax - 0x40]
lea ecx, [esp + 0x50]
push eax
call fcn.00514ca0
add esp, 4
mov edi, eax
lea esi, [esp + 0xc8]
mov edx, dword [esi - 0x48]
lea ecx, [esp + 0x50]
push esi
call fcn.00514ca0
add esp, 4
or eax, edi
mov edi, 0xffffffff
cmove edi, ebx
xor eax, eax
mov dword [esi - 0x38], eax
jmp 0x5133fa