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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x40], eax
mov eax, edx
mov ebp, edx
shr eax, 0x14
and ebp, 0xfffff
and eax, 0x7ff
mov dword [esp + 0x44], ebp
cmp eax, 0x7ff
je sym._anonymous_namespace_::ryu::d2fixed_buffered_n_double__unsigned_int__char___clone_.cold_
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
test eax, eax
mov ecx, edx
sete bl
mov edx, esi
or edx, edi
sete dl
and bl, dl
mov ebp, ebx
jne sym._anonymous_namespace_::ryu::d2fixed_buffered_n_double__unsigned_int__char___clone_.cold_
test eax, eax
jne 0x43cbb8
mov eax, dword [esp + 0x24]
test ecx, ecx
js 0x43cd50
mov edi, dword [esp + 0x4c]
mov byte [eax], 0x30
test edi, edi
je 0x43ced8
mov byte [eax + 1], 0x2e
mov dword [esp + 0x48], 0xfffffbce
mov dword [esp + 0x18], 2
mov edi, dword [esp + 0x48]
mov edx, 0x38e38e39
test edi, edi
lea eax, [edi + 0xf]
cmovns eax, edi
sar eax, 4
mov ebx, eax
mov eax, dword [esp + 0x4c]
neg ebx
mul edx
movzx esi, byte [ebx + 0x5226a0]
shr edx, 1
lea eax, [edx + 1]
mov dword [esp + 0x38], edx
mov edi, eax
mov dword [esp + 0x3c], eax
mov eax, esi
cmp esi, edi
jae 0x43ce61
xor ebp, ebp
test al, al
jne 0x43d0e8
mov eax, dword [esp + 0x48]
mov edx, ebx
movzx edi, word [ebx + ebx + 0x53c000]
shl edx, 4
neg eax
sub edi, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x48], eax
sub eax, edx
mov edx, dword [esp + 0x44]
add edi, ebp
sub eax, 0xffffff80
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x40]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x30], eax
movzx eax, word [ebx + ebx + 0x53c002]
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
add esi, eax
jmp 0x43cb61
mov eax, 0xd1b71759
mul ebx
mov ecx, edx
shr edx, 0xd
shr ecx, 0xd
imul eax, ecx, 0x2710
mov ecx, ebx
mov ebx, edx
mov dword [esp + 0x1c], ebx
sub ecx, eax
mov eax, 0x51eb851f
mul ecx
shr edx, 5
imul eax, edx, 0x64
sub ecx, eax
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + 7], ax
movzx eax, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + 5], ax
mov eax, 0xd1b71759
mul ebx
mov ebx, dword [esp + 0x1c]
mov eax, edx
mov ecx, edx
shr eax, 0xd
shr ecx, 0xd
imul eax, eax, 0x2710
add ecx, 0x30
sub ebx, eax
mov eax, 0x51eb851f
mul ebx
shr edx, 5
imul eax, edx, 0x64
sub ebx, eax
movzx eax, word [ebx + ebx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + 3], ax
movzx eax, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov byte [esi], cl
mov word [esi + 1], ax
mov eax, dword [esp + 0x3c]
add ebp, 1
add dword [esp + 0x18], 9
add edi, 1
add esi, 9
cmp ebp, eax
jae 0x43ce8b
mov eax, dword [esp + 0x20]
cmp edi, eax
jae 0x43cef8
lea eax, [edi + edi*2]
mov edx, dword [esp + 0x34]
lea ecx, [eax*8 + 0x529a40]
mov eax, dword [esp + 0x28]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
call sym._anonymous_namespace_::ryu::mulShift_mod1e9_unsigned_long_long__unsigned_long_long_const__int_
mov ebx, eax
mov eax, dword [esp + 0x38]
cmp ebp, eax
jae 0x43d010
test ebx, ebx
jne 0x43cab8
mov dword [esi], 0x30303030
mov dword [esi + 4], 0x30303030
mov byte [esi + 8], 0x30
jmp 0x43cb47
lea edi, [eax - 0x433]
or dword [esp + 0x44], 0x100000
mov dword [esp + 0x48], edi
mov dword [esp + 0x18], 0
test ecx, ecx
js 0x43cd80
cmp dword [esp + 0x48], 0xffffffcc
jl 0x43d325
mov edx, dword [esp + 0x48]
test edx, edx
js 0x43cec0
sub eax, 0x424
mov edx, eax
and eax, 0xfffffff0
shr edx, 4
lea ebx, [eax + 0x78]
movzx ecx, word [edx + edx + 0x5299c0]
imul edx, eax, 0x13441
mov eax, 0x38e38e39
shr edx, 0x12
add edx, 0x19
mul edx
shr edx, 1
lea eax, [edx - 1]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
shld edx, eax, 8
shl eax, 8
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], edx
sub ebx, eax
lea eax, [ebx + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
add ecx, eax
lea eax, [ecx + ecx*2]
lea esi, [eax*8 + 0x522700]
mov dword [esp + 0x20], esi
jmp 0x43cc7f
test ecx, ecx
jne 0x43cd98
sub dword [esp + 0x1c], 1
mov eax, dword [esp + 0x1c]
sub dword [esp + 0x20], 0x18
cmp eax, 0xffffffff
je 0x43ce30
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x28]
call sym._anonymous_namespace_::ryu::mulShift_mod1e9_unsigned_long_long__unsigned_long_long_const__int_
mov ecx, eax
mov eax, ebp
test al, al
je 0x43cc60
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
add edi, eax
test ecx, ecx
je 0x43cea0
mov eax, 0xd1b71759
mul ecx
mov ebx, edx
mov esi, edx
shr ebx, 0xd
shr esi, 0xd
imul eax, ebx, 0x2710
mov dword [esp + 0x38], esi
sub ecx, eax
mov ebx, ecx
mov ecx, 0x51eb851f
mov eax, ebx
mul ecx
shr edx, 5
imul eax, edx, 0x64
sub ebx, eax
movzx eax, word [ebx + ebx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 7], ax
movzx eax, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 5], ax
mov eax, 0xd1b71759
mul esi
mov esi, dword [esp + 0x38]
mov eax, edx
mov ebx, edx
shr eax, 0xd
shr ebx, 0xd
imul eax, eax, 0x2710
add ebx, 0x30
sub esi, eax
mov eax, esi
mul ecx
mov ecx, edx
shr ecx, 5
imul eax, ecx, 0x64
sub esi, eax
movzx eax, word [esi + esi + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + 3], ax
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov byte [edi], bl
mov word [edi + 1], ax
add dword [esp + 0x18], 9
jmp 0x43cc68
mov esi, dword [esp + 0x4c]
mov ebx, 0x302d
mov word [eax], bx
test esi, esi
je 0x43cee5
mov byte [eax + 2], 0x2e
mov dword [esp + 0x48], 0xfffffbce
mov dword [esp + 0x18], 3
jmp 0x43ca13
mov edi, dword [esp + 0x24]
mov dword [esp + 0x18], 1
mov byte [edi], 0x2d
jmp 0x43cbda
cmp ecx, 0x3b9ac9ff
ja 0x43d37c
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
add eax, edi
mov dword [esp + 0x38], eax
cmp ecx, 0x5f5e0ff
ja 0x43cf38
cmp ecx, 0x98967f
ja 0x43d0d8
cmp ecx, 0xf423f
ja 0x43d128
cmp ecx, 0x1869f
ja 0x43d14b
cmp ecx, 0x270f
ja 0x43d155
cmp ecx, 0x3e7
ja 0x43d217
cmp ecx, 0x63
ja 0x43d26c
mov ebx, 1
cmp ecx, 9
ja 0x43d308
mov eax, dword [esp + 0x38]
add ecx, 0x30
mov byte [eax], cl
add dword [esp + 0x18], ebx
mov ebp, 1
jmp 0x43cc68
mov eax, ebp
test al, al
je 0x43d132
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x43ce55
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov byte [edi + eax], 0x2e
add eax, 1
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x48]
test ebx, ebx
js 0x43ca13
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov dword [esp + 4], 0x30
mov esi, dword [esp + 0x4c]
add eax, edi
mov dword [esp + 8], esi
mov dword [esp], eax
call sym._memset
mov eax, edi
add eax, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [edi], 0x30303030
mov dword [edi + 4], 0x30303030
mov byte [edi + 8], 0x30
jmp 0x43cd41
mov dword [esp + 0x1c], 1
xor ecx, ecx
mov ebx, 0x78
jmp 0x43cc25
mov dword [esp + 0x18], 1
jmp 0x43ce61
mov dword [esp + 0x18], 2
jmp 0x43ce61
mov ebx, dword [esp + 0x4c]
lea eax, [ebp + ebp*8]
mov edi, dword [esp + 0x18]
mov dword [esp + 4], 0x30
sub ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], ebx
add eax, edi
add edi, ebx
mov dword [esp], eax
call sym._memset
mov dword [esp + 0x18], edi
mov eax, dword [esp + 0x18]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, 9
mov eax, dword [esp + 0x38]
mov dword [esp + 0x3c], ebx
mov ebp, 0x51eb851f
lea esi, [eax + ebx - 4]
nop
mov eax, 0xd1b71759
mov edi, ecx
mul ecx
mov ebx, edx
shr ebx, 0xd
imul eax, ebx, 0x2710
mov ebx, ecx
mov ecx, edx
shr ecx, 0xd
sub ebx, eax
mov eax, ebx
mul ebp
shr edx, 5
imul eax, edx, 0x64
sub ebx, eax
mov eax, esi
sub esi, 4
movzx ebx, word [ebx + ebx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + 6], bx
movzx edx, word [edx + edx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [esi + 4], dx
cmp edi, 0x5f5e0ff
ja 0x43cf50
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
lea edx, [esi + ebx]
mov ebp, edx
sub ebp, eax
cmp edi, 0xf423f
jbe 0x43cfe1
sub eax, edx
add ebp, 2
lea esi, [ebx + eax - 2]
mov eax, 0x51eb851f
mul ecx
mov eax, ecx
shr edx, 5
imul edi, edx, 0x64
mov ecx, edx
sub eax, edi
mov edi, dword [esp + 0x38]
movzx eax, word [eax + eax + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [edi + esi], ax
cmp ecx, 9
jbe 0x43ce11
lea eax, [ebx - 2]
sub eax, ebp
add dword [esp + 0x38], eax
movzx eax, word [ecx + ecx + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov edi, dword [esp + 0x38]
mov word [edi], ax
jmp 0x43ce1a
mov edi, dword [esp + 0x4c]
lea eax, [ebp + ebp*8]
mov esi, edi
sub esi, eax
sub eax, edi
mov dword [esp + 0x1c], esi
lea ebp, [eax + 9]
cmp eax, 0xfffffff7
je 0x43d312
xor ecx, ecx
mov edi, 0xcccccccd
mov edx, ebx
lea esi, [esi]
nop
mov eax, edx
mov esi, edx
add ecx, 1
mul edi
shr edx, 3
cmp ecx, ebp
jne 0x43d040
mov eax, esi
mov ebx, edx
mul edi
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub esi, eax
cmp esi, 5
je 0x43d15f
seta al
mov ebp, dword [esp + 0x1c]
movzx eax, al
mov edi, eax
test ebp, ebp
jne 0x43d18e
test edi, edi
je 0x43ce8b
mov eax, dword [esp + 0x18]
test eax, eax
lea ecx, [eax - 1]
mov eax, dword [esp + 0x24]
je 0x43d357
lea edx, [eax + ecx]
xor ebx, ebx
movzx eax, byte [edx]
cmp al, 0x2d
je 0x43d34a
cmp al, 0x2e
je 0x43d22b
cmp al, 0x39
je 0x43d2fb
cmp edi, 2
je 0x43d20a
add eax, 1
mov byte [edx], al
mov eax, dword [esp + 0x18]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, 8
jmp 0x43cf3d
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
lea edx, [esi + esi*8]
add eax, ebp
add ebp, edx
lea edi, [eax + 4]
mov dword [eax], 0x30303030
and edi, 0xfffffffc
mov dword [eax + edx - 4], 0x30303030
sub eax, edi
lea ecx, [edx + eax]
mov eax, 0x30303030
shr ecx, 2
rep stosd dword es:[edi], eax
mov dword [esp + 0x18], ebp
mov ebp, esi
jmp 0x43ca5b
mov ebx, 7
jmp 0x43cf3d
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
add eax, edi
add edi, 1
mov dword [esp + 0x18], edi
mov byte [eax], 0x30
jmp 0x43ce3a
mov ebx, 6
jmp 0x43cf3d
mov ebx, 5
jmp 0x43cf3d
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
sub ecx, eax
sub ecx, 1
test ecx, ecx
jle 0x43d2c3
cmp ecx, 0x3b
jle 0x43d280
mov ecx, dword [esp + 0x1c]
mov edi, 1
test ecx, ecx
je 0x43d085
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
add esi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], esi
lea ebp, [eax - 1]
cmp eax, 1
je 0x43d2d9
mov dword [esp + 0x20], edi
lea ecx, [esi + eax - 2]
xor esi, esi
lea esi, [esi]
lea esi, [esi]
mov eax, 0x51eb851f
add esi, 2
sub ecx, 2
mul ebx
mov eax, ebx
shr edx, 5
imul edi, edx, 0x64
mov ebx, edx
sub eax, edi
movzx eax, word [eax + eax + str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899]
mov word [ecx + 2], ax
cmp esi, ebp
jb 0x43d1c0
mov eax, dword [esp + 0x1c]
mov ecx, ebp
mov edi, dword [esp + 0x20]
sub ecx, esi
cmp esi, eax
jb 0x43d2db
mov esi, dword [esp + 0x1c]
add dword [esp + 0x18], esi
jmp 0x43d07d
test al, 1
je 0x43ce8b
jmp 0x43d0c1
mov ebp, 2
mov esi, 2
mov ebx, 4
jmp 0x43cfbe
mov ebx, ecx
sub ecx, 1
sub edx, 1
cmp ecx, 0xffffffff
jne 0x43d09d
mov eax, dword [esp + 0x24]
mov byte [eax], 0x31
test ebx, ebx
jle 0x43d254
mov eax, dword [esp + 0x24]
mov edx, 0x2e30
mov word [eax + ebx], dx
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x24]
mov byte [edi + eax], 0x30
add eax, 1
mov dword [esp + 0x18], eax
jmp 0x43ce8b
mov ebp, 2
mov esi, 1
mov ebx, 3
jmp 0x43cfbe
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov edx, edi
or edx, ebp
je 0x43d35f
mov eax, 0xffffffff
xor edi, edi
mov edx, 0xffffffff
mov ebp, dword [esp + 0x44]
shl eax, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
mov edi, dword [esp + 0x40]
not eax
not edx
and edi, eax
and ebp, edx
mov eax, edi
or eax, ebp
jne 0x43d17d
mov esi, dword [esp + 0x1c]
mov edi, 2
test esi, esi
je 0x43d085
jmp 0x43d18e
xor ecx, ecx
mov eax, 0xcccccccd
mul ebx
shr edx, 3
lea eax, [edx + edx*4]
add eax, eax
sub ebx, eax
mov eax, dword [esp + 0x28]
add ebx, 0x30
mov byte [eax + ecx], bl
jmp 0x43d1fd
mov byte [edx], 0x30
mov edi, 1
jmp 0x43d22d
mov ebx, 2
jmp 0x43cff3
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x43ce8b
xor edi, edi
jmp 0x43d18e
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x4c]
add eax, edi
add edi, 1
mov dword [esp + 0x18], edi
mov byte [eax], 0x30
test ecx, ecx
jne 0x43ce42
jmp 0x43ca13
mov eax, dword [esp + 0x24]
lea eax, [eax + ecx + 1]
jmp 0x43d240
mov byte [eax], 0x31
jmp 0x43d254
mov dword [esp + 8], 0xcd
mov dword [esp + 4], str.C:_buildroot_src_gcc_13.2.0_libstdc_v3_src_c17_ryu_d2s_intrinsics.h
mov dword [esp], str.value___0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__assert]
call sym._anonymous_namespace_::ryu::decimalLength9_unsigned_int___clone_.part.0_
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop