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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x490
cmp dword [ebp + 8], 0
je 0x495606
movd eax, xmm0
mov dword [esp + 0x64], ecx
mov dword [esp + 4], edx
mov ecx, eax
mov ebx, eax
shr ecx, 0x17
and ebx, 0x7fffff
movzx edi, cl
lea ecx, [eax + eax]
or ebx, 0x800000
and ecx, 0xfffffe
test edi, edi
cmove ebx, ecx
ucomiss xmm0, dword [0x4d2280]
mov cl, 3
jae 0x49528b
movss xmm1, dword [0x4d2284]
ucomiss xmm1, xmm0
jae 0x4952b7
ucomiss xmm0, xmm0
jp 0x49561c
mov ecx, eax
mov edx, 4
and ecx, 0x7f800000
cmp ecx, 1
mov ecx, 2
sbb edx, 0
test eax, 0x7fffffff
cmovne ecx, edx
cmp ecx, 2
je 0x495289
cmp ecx, 3
jne 0x49528d
add edi, 0xffffff6a
test bl, 1
mov edx, 1
sete cl
xor esi, esi
jmp 0x4952b7
mov cl, 4
jmp 0x4952b7
test bl, 1
lea esi, [ebx + ebx]
movzx edi, di
sete cl
xor edx, edx
cmp ebx, 0x800000
mov ebx, 0x2000000
sete dl
cmovne ebx, esi
xor esi, esi
sub edi, edx
inc edx
add edi, 0xffffff69
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 1
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], esi
mov word [esp + 0x80], di
mov byte [esp + 0x82], cl
add cl, 0xfe
movzx edx, cl
cmp cl, 3
mov ecx, 3
cmovb ecx, edx
test cl, cl
je 0x4953a4
mov ebx, eax
mov edx, 0x4d3c57
mov esi, 0x4d3c58
shr ebx, 0x1f
cmp byte [esp + 4], 0
cmovne esi, edx
mov edx, 1
cmovne ebx, edx
test eax, eax
mov eax, 0x4d3c56
cmovns eax, esi
cmp cl, 1
je 0x4953cc
movzx edx, byte [ebp + 0xc]
mov dword [esp + 4], eax
movzx eax, cl
cmp eax, 2
jne 0x4953e8
mov eax, dword [ebp + 8]
cmp eax, 1
jbe 0x495525
dec eax
mov word [esp + 0x1c], 2
mov dword [esp + 0x20], 0x4d3bf8
mov dword [esp + 0x24], 2
mov word [esp + 0x28], 0
test dl, dl
mov ecx, 0x4d3cf6
mov edx, 3
mov dword [esp + 0x2c], eax
mov eax, str.E0e0assertion_failed:_buf.len_____maxlen
mov word [esp + 0x34], 2
cmovne ecx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], 2
jmp 0x4955dd
mov edx, 1
xor ebx, ebx
mov eax, 0x4d3c58
mov word [esp + 0x1c], 2
mov dword [esp + 0x20], 0x4d3c5c
mov dword [esp + 0x24], 3
jmp 0x4955dd
mov word [esp + 0x1c], 2
mov dword [esp + 0x20], 0x4d3c59
mov dword [esp + 0x24], 3
jmp 0x4955dd
mov esi, dword [ebp + 8]
test di, di
mov eax, 0xfffffff4
mov ecx, 5
movsx edi, di
cmovs ecx, eax
imul edi, ecx
cmp esi, 0x401
jb 0x495415
cmp edi, 0x3ebf
ja 0x495623
shr edi, 4
add edi, 0x15
cmp edi, esi
cmovae edi, esi
cmp edi, 0x401
jae 0x495639
lea ecx, [esp + 0x8c]
lea edx, [esp + 0x68]
lea eax, [esp + 0x1c]
push 0x8000
push edi
push ecx
push edx
push eax
call sym.core::num::flt2dec::strategy::grisu::format_exact_opt::h7085164e18d465a0
add esp, 0x14
cmp dword [esp + 0x1c], 0
je 0x495555
mov eax, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x1c]
mov dword [esp + 0x10], eax
movsd qword [esp + 8], xmm0
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x495581
mov edi, dword [esp + 8]
cmp byte [edi], 0x31
jb 0x49564e
movzx eax, word [esp + 0x10]
mov edx, ecx
mov word [esp + 0x1c], 2
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], 1
or edx, esi
cmp edx, 2
mov edx, 1
jb 0x4954ef
inc edi
lea edx, [ecx - 1]
mov word [esp + 0x28], 2
mov dword [esp + 0x2c], 0x4d3bfa
mov dword [esp + 0x30], 1
mov word [esp + 0x34], 2
cmp ecx, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edx
mov edx, 3
jae 0x4954ef
sub esi, ecx
mov word [esp + 0x40], 0
mov edx, 4
mov dword [esp + 0x44], esi
test ax, ax
jle 0x495597
dec eax
cmp byte [ebp + 0xc], 0
mov ecx, 0x4d3c54
mov esi, 0x4d3c55
cmovne esi, ecx
lea ecx, [edx + edx*2]
mov word [esp + ecx*4 + 0x1c], 2
mov dword [esp + ecx*4 + 0x20], esi
mov dword [esp + ecx*4 + 0x24], 1
jmp 0x4955c7
test dl, dl
mov eax, 0x4d3c5f
mov ecx, 0x4d3c62
mov word [esp + 0x1c], 2
mov edx, 1
cmovne ecx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], 3
jmp 0x4955dd
lea eax, [esp + 8]
push 0x8000
push edi
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x74]
push ecx
push eax
call sym.core::num::flt2dec::strategy::dragon::format_exact::h392d3fbbec9085a5
add esp, 0x14
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x495477
push 0x4d3bfc
push 0x21
push str.assertion_failed:__buf.is_empty__called__Option::unwrap____on_a__None__value
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
ud2
cmp byte [ebp + 0xc], 0
mov ecx, str.E_e_Ee_0infNaN0E00e0assertion_failed:_ndigits___0
mov esi, 0x4d3c52
cmovne esi, ecx
lea ecx, [edx + edx*2]
mov word [esp + ecx*4 + 0x1c], 2
mov dword [esp + ecx*4 + 0x20], esi
mov dword [esp + ecx*4 + 0x24], 2
mov ecx, 1
sub ecx, eax
mov eax, ecx
lea ecx, [edx + edx*2]
add edx, 2
mov word [esp + ecx*4 + 0x28], 1
mov word [esp + ecx*4 + 0x2a], ax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x64]
mov dword [esp + 8], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
lea edx, [esp + 8]
call sym.core::fmt::Formatter::pad_formatted_parts::hcdb86b755fe2e917
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x4d3c84
push 0x1d
push 0x4d3c65
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
ud2
mov cl, 2
jmp 0x49528b
push 0x4d3cd4
push 0x3d
push str.assertion_failed:_buf.len_____ndigits__buf.len_____maxlen
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
ud2
push 0x4d3ce4
push 0x400
push edi
call sym.core::slice::index::slice_end_index_len_fail::ha90cccd5bd71ac96
add esp, 0xc
ud2
push 0x4d3c0c
push 0x21
push str.assertion_failed:_buf_0____b0
call sym.core::panicking::panic::h77c9b6f606fdbf34
add esp, 0xc
ud2