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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x274
lea ebp, [esp + 0x290]
lea edi, [esp + 0x6c]
mov dword [esp + 4], edi
mov dword [esp], ebp
call fcn.00512df0
movss xmm0, dword [esp + 0x28c]
mov esi, eax
mov ebx, edx
movzx ecx, byte [esp + 0x299]
and ebx, 0xffff00ff
movss dword [esp + 0x30], xmm0
fld dword [esp + 0x30]
fxam
wait
fnstsw ax
fstp st(0)
test eax, 0x200
jne 0x51c6bb
shr ecx, 4
and ecx, 7
mov eax, ecx
shl eax, 8
xor edx, edx
cmp cl, 1
cmovne edx, eax
or ebx, edx
jmp 0x51c6c8
or ebx, 0x100
xorps xmm0, xmmword [0x572d00]
lea ecx, [esp + 0x288]
movss dword [esp + 0x2c], xmm0
fld dword [esp + 0x2c]
fxam
wait
fnstsw ax
fstp st(0)
test eax, 0x100
jne 0x51c826
mov al, byte [ebp + 9]
and al, 0xf
cmp al, 4
movups xmmword [esp + 0x5c], xmm0
jne 0x51c75b
mov eax, ebx
and eax, 0xff00
je 0x51c75b
mov edi, dword [ecx]
movzx eax, bh
mov al, byte [eax + 0x573c1c]
mov byte [esp + 0x1b], al
mov ecx, dword [edi + 8]
lea eax, [ecx + 1]
cmp dword [edi + 0xc], eax
jae 0x51c72e
mov edx, dword [edi]
mov dword [esp], eax
mov ecx, edi
call dword [edx]
sub esp, 4
mov ecx, dword [edi + 8]
lea eax, [ecx + 1]
mov edx, dword [edi + 4]
mov dword [edi + 8], eax
mov al, byte [esp + 0x1b]
mov byte [edx + ecx], al
lea eax, [esp + 0x288]
mov dword [eax], edi
and ebx, 0xffff00ff
mov eax, dword [ebp]
test eax, eax
je 0x51c757
add eax, 0xffffffff
mov dword [ebp], eax
lea edi, [esp + 0x6c]
lea eax, [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 8], 0x200
mov dword [esp + 4], 0
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
mov dword [esp + 0x6c], 0x573e78
lea eax, [esp + 0x7c]
mov dword [esp + 0x70], eax
mov dword [esp + 0x78], 0x1f4
cmp bl, 3
jne 0x51c8b3
mov eax, ebx
shr eax, 8
and eax, 0xff
movups xmm0, xmmword [esp + 0x5c]
je 0x51c7bb
mov al, byte [eax + 0x573c1c]
mov dword [esp + 0x74], 1
mov byte [esp + 0x7c], al
cvtss2sd xmm0, xmm0
mov eax, dword [ebp + 4]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], esi
movsd xmm1, qword [esp + 0x54]
movsd qword [esp + 0xc], xmm1
mov dword [esp + 0x14], edi
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call fcn.0050e370
lea eax, [esp + 0x288]
mov eax, dword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], ecx
movsd xmm0, qword [esp + 0x4c]
movsd qword [esp + 4], xmm0
mov eax, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0xc], ebp
call fcn.00517430
jmp 0x51c9ca
mov ecx, dword [ecx]
movss dword [esp + 0x28], xmm0
fld dword [esp + 0x28]
fxam
wait
fnstsw ax
fstp st(0)
and eax, 0x4500
test ebx, 0x10000
mov edx, 0x572f89
mov esi, 0x572f85
cmove esi, edx
mov ebp, edi
mov edi, 0x572f91
mov edx, 0x572f8d
cmove edx, edi
cmp eax, 0x500
cmove edx, esi
shr ebx, 8
xor eax, eax
and ebx, 0xff
sete al
mov esi, 4
sub esi, eax
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], edx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 8], esi
lea eax, [esp + 0x290]
mov dword [esp + 4], eax
call fcn.00515890
mov esi, eax
jmp 0x51c9e0
mov ecx, edi
cmp byte [ebp + 8], 0
mov eax, dword [ebp + 4]
mov edi, 6
cmove edi, eax
test eax, eax
cmovns edi, eax
cmp bl, 1
movups xmm0, xmmword [esp + 0x5c]
jne 0x51c8e2
cmp edi, 0x7fffffff
je 0x51c9ed
add edi, 1
mov ebp, ebx
or ebp, 0xc0000
cvtss2sd xmm0, xmm0
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], ebp
movsd xmm1, qword [esp + 0x44]
movsd qword [esp + 0xc], xmm1
mov dword [esp + 0x14], ecx
mov dword [esp + 8], edi
movsd qword [esp], xmm0
call fcn.0050ea40
mov esi, eax
mov dl, 0x2e
test ebx, 0x20000
je 0x51c96f
lea eax, [esp + 0x2a0]
mov eax, dword [eax]
test eax, eax
je 0x51c93e
mov dword [esp], eax
lea ecx, [esp + 0x1c]
call fcn.00427390
sub esp, 4
jmp 0x51c947
lea ecx, [esp + 0x1c]
call fcn.004272c0
mov eax, dword [0x573fd8]
mov dword [esp], eax
lea ecx, [esp + 0x1c]
call fcn.00427e00
sub esp, 4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
mov ebx, eax
lea ecx, [esp + 0x1c]
call fcn.004273a0
mov edx, ebx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
lea eax, [esp + 0x288]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], edi
movsd xmm0, qword [esp + 0x3c]
movsd qword [esp + 0xc], xmm0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
movsx eax, dl
mov dword [esp + 0x14], eax
lea eax, [esp + 0x290]
mov dword [esp + 8], eax
lea eax, [esp + 0x1c]
mov dword [esp + 4], eax
call fcn.00517530
mov esi, eax
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x7c]
cmp eax, ecx
je 0x51c9e0
mov dword [esp], eax
call fcn.0041a380
mov eax, esi
add esp, 0x274
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp], 2
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov dword [esp], eax
mov dword [esp + 0x10], 0x572e6c
mov dword [esp + 0xc], 0x78a
mov dword [esp + 8], str.external_fmtlib_include_fmt_format.h
call fcn.0050a710
call fcn.004949d0
int3