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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x88
mov ecx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
call 0x4fa04a
pop eax
movzx edx, byte [ecx]
cmp edx, 3
je 0x4fa070
cmp edx, 7
jne 0x4fa0bc
mov eax, dword [esi + 0x18]
push 4
push str.nullP
push dword [esi + 0x14]
call dword [eax + 0xc]
add esp, 0xc
jmp 0x4fa570
mov esi, dword [ecx + 0xc]
mov eax, dword [ecx + 8]
mov ecx, esi
and ecx, 0x7fffffff
cmp ecx, 0x7fefffff
jle 0x4fa0ea
mov edx, esi
xor ecx, ecx
mov edi, 0x5af0b2
and edx, 0xfffff
test esi, esi
mov esi, 0x5af0af
sets cl
cmovns edi, esi
add ecx, 3
or eax, edx
mov edx, 3
mov eax, 0x5af0b6
cmove edx, ecx
cmove eax, edi
jmp 0x4fa145
add eax, dword [edx*4 + 0x4fb3cc]
jmp eax
mov edx, esi
mov ebx, esi
shr edx, 0x14
and ebx, 0xfffff
and edx, 0x7ff
test esi, esi
js 0x4fa10f
lea edi, [esp + 0x40]
mov dword [esp + 0x34], 0
jmp 0x4fa120
lea edi, [esp + 0x41]
mov byte [esp + 0x40], 0x2d
mov dword [esp + 0x34], 1
mov dword [esp + 0x24], edi
mov edi, eax
or edi, ebx
or edi, edx
jne 0x4fa19a
mov eax, dword [esp + 0x24]
shr esi, 0x1f
add esi, 3
mov edx, esi
mov byte [eax + 2], 0x30
mov word [eax], 0x2e30
lea eax, [esp + 0x40]
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x18]
lea eax, [esp + 0x28]
mov dword [esp + 0x60], 0x5afe84
mov dword [esp + 0x64], 2
mov dword [esp + 0x70], 0
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x80], sym.__LT__RF_T_u20_as_u20_core..fmt..Display_GT_::fmt::h2b145cdcf15c0717
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 1
lea eax, [esp + 0x60]
jmp 0x4fa567
mov esi, eax
mov dword [esp + 0x18], eax
add eax, 0xffffffff
mov ecx, ebx
lea edi, [edx - 0x435]
adc ecx, 0xfffff
add eax, 1
mov dword [esp + 4], edi
mov edi, 0xfffffbcc
adc ecx, 0
test edx, edx
cmove ecx, ebx
cmove eax, esi
cmovne edi, dword [esp + 4]
mov dword [esp], ecx
shld ecx, eax, 2
or dword [esp + 0x18], ebx
mov dword [esp + 0x58], eax
lea eax, [eax*4]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x38], eax
mov esi, edi
setne cl
cmp edx, 2
setb dl
or dl, cl
test edi, edi
movzx edi, dl
js 0x4fa35b
imul ebx, esi, 0x13441
xor eax, eax
mov dword [esp + 0x1c], edi
shr ebx, 0x12
cmp esi, 4
setae al
sub ebx, eax
jb 0x4fb35a
mov ecx, 0x12934f
mov eax, ebx
mul ecx
mov edx, dword [esp]
jo 0x4fb332
mov ecx, ebx
shr eax, 0x13
lea edi, [esp + 0x60]
sub ecx, esi
lea esi, [eax + ecx + 0x7d]
mov ecx, dword [esp + 0x58]
mov eax, ebx
shl eax, 4
push dword [esp + 0x1c]
push edi
lea edi, [esp + 0x30]
push edi
push esi
push dword [eax + 0x5ac10c]
push dword [eax + 0x5ac108]
push dword [eax + 0x5ac104]
push dword [eax + 0x5ac100]
call sym.ryu::d2s_intrinsics::mul_shift_all_64::hbfe37dc654705b52
add esp, 0x20
mov esi, eax
mov dword [esp + 0x18], edx
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
cmp ebx, 0x16
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
jae 0x4fa40d
mov esi, dword [esp + 0x38]
mov dword [esp + 0x10], edx
mov edx, 0xcccccccd
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x20], ecx
add esi, dword [esp + 0x14]
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
cmp eax, esi
jne 0x4fa5d2
mov esi, dword [esp + 0x58]
mov edi, dword [esp]
mov ebx, 0x33333333
lea ecx, [ebx + 1]
mov eax, esi
imul esi, esi, 0x33333333
imul edi, ecx
mul ecx
add esi, edx
mov edx, 0x33333333
mov ecx, eax
add esi, edi
xor edi, edi
cmp ebx, eax
sbb edx, esi
jb 0x4fa33c
xor edi, edi
mov ebx, 0xcccccccc
nop word cs:[eax + eax]
nop
inc edi
je 0x4fb31e
mov eax, ecx
mov edx, 0xcccccccd
imul ecx, ebx
mul edx
add ecx, edx
mov edx, 0xcccccccd
imul esi, edx
add esi, ecx
mov ecx, 0x33333333
cmp ecx, eax
sbb ecx, esi
mov ecx, eax
jae 0x4fa310
mov ecx, dword [esp + 0x5c]
cmp edi, ecx
jb 0x4fa667
mov al, 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
jmp 0x4fa9d0
imul ebx, esi, 0xfff4d105
xor eax, eax
mov dword [esp + 0x1c], edx
shr ebx, 0x14
cmp esi, 0xffffffff
setne al
sub ebx, eax
jb 0x4fb364
add esi, ebx
mov ecx, 0x12934f
mov dword [esp + 0x3c], esi
neg esi
mov eax, esi
mul ecx
mov edx, dword [esp]
jo 0x4fb332
mov ecx, dword [esp + 0x58]
shr eax, 0x13
shl esi, 4
neg eax
lea eax, [ebx + eax + 0x7c]
push edi
lea edi, [esp + 0x64]
push edi
lea edi, [esp + 0x30]
push edi
push eax
push dword [esi + 0x5ad66c]
push dword [esi + 0x5ad668]
push dword [esi + 0x5ad664]
push dword [esi + 0x5ad660]
call sym.ryu::d2s_intrinsics::mul_shift_all_64::hbfe37dc654705b52
add esp, 0x20
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
cmp ebx, 2
mov dword [esp + 8], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 4], esi
jae 0x4fa587
test byte [esp + 0x58], 1
mov dword [esp + 0xc], edi
jne 0x4fa8ff
mov al, 1
jmp 0x4fa9ea
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0xc]
jmp 0x4fa677
push eax
call sym.core::fmt::write::h6d9651045a265294
add esp, 4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, ebx
cmp ebx, 0x3f
jae 0x4fa673
mov ebx, esi
mov esi, ecx
mov eax, 0xffffffff
xor edx, edx
mov ecx, ebx
shl eax, cl
test bl, 0x20
mov ecx, 0xffffffff
mov ebx, dword [esp + 0x38]
cmovne ecx, eax
cmovne eax, edx
mov edx, dword [esp + 0x14]
not ecx
not eax
and ebx, eax
and edx, ecx
or ebx, edx
je 0x4fa9da
mov edx, dword [esp + 0x10]
mov ecx, esi
jmp 0x4fa677
mov ebx, dword [esp + 0x58]
mov esi, dword [esp]
test bl, 1
jne 0x4fa926
or esi, ebx
je 0x4fb382
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
mov ecx, 0xcccccccd
not ebx
add ebx, dword [esp + 0x38]
mov eax, ebx
adc esi, 0xffffffff
imul edi, ebx, 0xcccccccc
xor ebx, ebx
mul ecx
imul esi, esi, 0xcccccccd
add edi, edx
mov ecx, eax
mov edx, 0x33333333
add esi, edi
cmp edx, ecx
mov edx, 0x33333333
sbb edx, esi
jb 0x4fa65b
xor ebx, ebx
mov edi, 0xcccccccc
inc ebx
je 0x4fb31e
mov eax, ecx
mov edx, 0xcccccccd
imul ecx, edi
mul edx
add ecx, edx
mov edx, 0xcccccccd
imul esi, edx
add esi, ecx
mov ecx, 0x33333333
cmp ecx, eax
sbb ecx, esi
mov ecx, eax
jae 0x4fa62f
mov ecx, dword [esp + 0x5c]
cmp ebx, ecx
jae 0x4fa9c2
mov dword [esp + 0x3c], ecx
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
push 0
push 0x64
mov dword [esp + 0x28], ecx
push ecx
mov dword [esp + 0x1c], edx
push edx
call sym.___udivdi3
add esp, 0x10
mov esi, eax
mov ebx, edx
push 0
push 0x64
mov dword [esp + 0x14], edi
push edi
push dword [esp + 0x10]
call sym.___udivdi3
add esp, 0x10
cmp eax, esi
mov ecx, edx
mov edi, eax
mov dword [esp + 0x1c], 0
mov dword [esp], esi
mov dword [esp + 0x14], ebx
sbb ecx, ebx
jae 0x4fa705
push 0
push 0x64
push dword [esp + 0x20]
mov esi, dword [esp + 0x14]
push esi
mov ebx, edx
call sym.___udivdi3
add esp, 0x10
imul ecx, eax, 0xffffff9c
mov dword [esp + 0xc], ebx
mov ebx, dword [esp]
mov dword [esp + 8], eax
mov dword [esp + 0x18], edx
mov dword [esp + 4], edi
mov dword [esp], 2
add ecx, esi
mov esi, dword [esp + 0x14]
cmp ecx, 0x32
setae al
mov dword [esp + 0x1c], eax
jmp 0x4fa714
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov dword [esp], 0
shrd ebx, esi, 1
shr esi, 1
mov edi, 0xcccccccd
mov ecx, ebx
add ecx, esi
adc ecx, 0
mov eax, ecx
mul edi
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub ebx, ecx
mov ecx, dword [esp + 0xc]
mov eax, ebx
sbb esi, 0
mul edi
mov dword [esp + 0x14], eax
imul eax, ebx, 0xcccccccc
imul ebx, esi, 0xcccccccd
add eax, edx
mov edx, dword [esp + 4]
mov edi, ecx
shr ecx, 1
add ebx, eax
shld edi, edx, 0x1f
mov edx, 0xcccccccd
mov esi, edi
add esi, ecx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub edi, esi
mov eax, edi
sbb ecx, 0
imul esi, edi, 0xcccccccc
mul edx
add esi, edx
imul edx, ecx, 0xcccccccd
add edx, esi
cmp eax, dword [esp + 0x14]
mov esi, edx
sbb esi, ebx
jae 0x4fa8be
mov edi, dword [esp + 8]
nop word [eax + eax]
inc dword [esp]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
jo 0x4fb300
mov esi, dword [esp + 0x18]
mov dword [esp + 0x10], edi
mov edx, 0xcccccccd
mov ecx, esi
shr esi, 1
shld ecx, edi, 0x1f
mov edi, ecx
add edi, esi
adc edi, 0
mov eax, edi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub edi, eax
sub ecx, edi
mov edi, 0xcccccccd
mov eax, ecx
sbb esi, 0
mul edi
imul esi, esi, 0xcccccccd
mov dword [esp + 8], eax
imul eax, ecx, 0xcccccccc
mov ecx, dword [esp + 0x14]
add eax, edx
add esi, eax
mov dword [esp + 0x18], esi
shrd ecx, ebx, 1
shr ebx, 1
mov esi, ecx
add esi, ebx
adc esi, 0
mov eax, esi
mul edi
shr edx, 2
lea eax, [edx + edx*4]
sub esi, eax
sub ecx, esi
mov eax, ecx
sbb ebx, 0
imul ecx, ecx, 0xcccccccc
mul edi
imul ebx, ebx, 0xcccccccd
add ecx, edx
mov edx, dword [esp + 4]
mov dword [esp + 0x14], eax
add ebx, ecx
mov ecx, dword [esp + 0xc]
mov edi, ecx
shr ecx, 1
shld edi, edx, 0x1f
mov edx, 0xcccccccd
mov esi, edi
add esi, ecx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub edi, esi
mov eax, edi
sbb ecx, 0
imul esi, edi, 0xcccccccc
mov edi, dword [esp + 8]
mul edx
add esi, edx
imul edx, ecx, 0xcccccccd
add edx, esi
mov esi, dword [esp + 0x14]
mov ecx, edx
cmp eax, esi
mov dword [esp + 0x14], esi
sbb ecx, ebx
jb 0x4fa7b0
mov ecx, dword [esp + 0x10]
mov eax, edi
mov esi, edi
add eax, edi
lea eax, [eax + eax*4]
sub ecx, eax
cmp ecx, 5
setae bl
jmp 0x4fa8c6
mov esi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0xc]
xor eax, esi
xor edx, ecx
or edx, eax
sete al
or al, bl
mov ebx, dword [ebp + 0xc]
movzx edx, al
and edx, 1
add edx, esi
adc ecx, 0
mov dword [esp + 0x18], ecx
jae 0x4fadd5
mov ecx, 0x5ac0ac
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov edi, dword [esp + 0x10]
mov eax, edi
or eax, ecx
je 0x4fb378
add edi, 0xffffffff
mov al, 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
adc ecx, 0xffffffff
jmp 0x4fa9f2
mov eax, 0x33333333
lea ecx, [eax + 1]
mov eax, ebx
imul ebx, ebx, 0x33333333
mul ecx
imul esi, ecx
add ebx, edx
mov ecx, eax
mov eax, 0x33333333
add ebx, esi
add ecx, 0x9999999a
adc ebx, 0x99999999
xor edi, edi
cmp eax, ecx
sbb eax, ebx
jb 0x4fa98d
xor edi, edi
mov esi, 0xcccccccc
inc edi
je 0x4fb31e
mov eax, ecx
mov edx, 0xcccccccd
imul ecx, esi
mul edx
add ecx, edx
mov edx, 0xcccccccd
imul ebx, edx
add ebx, ecx
mov ecx, 0x33333333
cmp ecx, eax
sbb ecx, ebx
mov ecx, eax
jae 0x4fa961
mov esi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
xor eax, eax
cmp edi, esi
mov ebx, ecx
setae al
cmp edx, eax
sbb ebx, 0
jb 0x4fb38c
xor eax, eax
cmp edi, esi
mov dword [esp + 0x3c], esi
setae al
sub edx, eax
sbb ecx, 0
jmp 0x4fa411
mov al, 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], eax
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x20]
jmp 0x4fa9ee
mov al, 1
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], edi
mov ecx, esi
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x10]
shrd edi, ecx, 1
shr ecx, 1
mov edx, 0xcccccccd
mov ebx, 0xcccccccd
mov esi, ecx
mov ecx, edi
add ecx, esi
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub edi, ecx
mov eax, edi
sbb esi, 0
mul ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], eax
imul eax, edi, 0xcccccccc
imul edi, esi, 0xcccccccd
add eax, edx
mov edx, dword [esp + 4]
add edi, eax
mov ecx, ebx
shr ebx, 1
shld ecx, edx, 0x1f
mov edx, 0xcccccccd
mov esi, ecx
add esi, ebx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub ecx, esi
mov eax, ecx
sbb ebx, 0
imul ecx, ecx, 0xcccccccc
mul edx
add ecx, edx
imul edx, ebx, 0xcccccccd
add edx, ecx
cmp eax, dword [esp + 0x20]
mov ecx, edx
sbb ecx, edi
jae 0x4fabfb
mov esi, dword [esp + 4]
xor ecx, ecx
mov dword [esp + 0x78], 0
mov dword [esp + 0x5c], esi
nop word [eax + eax]
inc ecx
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov dword [esp], ecx
jo 0x4fb314
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 8]
mov edx, 0xcccccccd
mov ebx, esi
shr esi, 1
shld ebx, eax, 0x1f
mov ecx, ebx
add ecx, esi
adc ecx, 0
mov eax, ecx
mul edx
shr edx, 2
lea eax, [edx + edx*4]
sub ecx, eax
sub ebx, ecx
mov ecx, 0xcccccccd
mov eax, ebx
sbb esi, 0
mul ecx
imul ecx, ebx, 0xcccccccc
imul esi, esi, 0xcccccccd
mov ebx, 0xcccccccd
add ecx, edx
mov dword [esp + 0x38], eax
add esi, ecx
mov ecx, eax
add ecx, eax
mov dword [esp + 0x18], esi
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 8]
neg eax
add cl, al
cmp byte [esp + 0x78], 0
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
sete al
and cl, al
mov eax, dword [esp + 4]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1c]
add eax, eax
lea eax, [eax + eax*4]
cmp eax, dword [esp + 0x5c]
sete al
and cl, al
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
shrd ecx, edi, 1
shr edi, 1
mov esi, ecx
add esi, edi
adc esi, 0
mov eax, esi
mul ebx
shr edx, 2
lea eax, [edx + edx*4]
sub esi, eax
sub ecx, esi
mov eax, ecx
sbb edi, 0
imul ecx, ecx, 0xcccccccc
mul ebx
imul edi, edi, 0xcccccccd
add ecx, edx
mov edx, dword [esp + 4]
mov dword [esp + 8], eax
add edi, ecx
mov ecx, dword [esp + 0xc]
mov ebx, ecx
shr ecx, 1
shld ebx, edx, 0x1f
mov edx, 0xcccccccd
mov esi, ebx
add esi, ecx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub ebx, esi
mov eax, ebx
sbb ecx, 0
imul esi, ebx, 0xcccccccc
mov ebx, dword [esp + 0x10]
mul edx
add esi, edx
imul edx, ecx, 0xcccccccd
add edx, esi
mov esi, dword [esp + 8]
mov ecx, edx
cmp eax, esi
mov dword [esp + 0x20], esi
mov esi, ebx
mov dword [esp + 0x78], ebx
sbb ecx, edi
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 4]
mov dword [esp + 0x5c], ecx
mov ebx, ecx
mov ecx, dword [esp]
jb 0x4faaa0
mov eax, esi
jmp 0x4fac10
mov eax, dword [esp + 8]
mov ebx, dword [esp + 4]
mov dword [esp], 0
mov dword [esp + 0x38], eax
xor eax, eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc]
test dl, dl
je 0x4fad71
mov edi, ecx
shr ecx, 1
mov dword [esp + 0x10], eax
mov edx, 0xcccccccd
shld edi, ebx, 0x1f
mov esi, edi
add esi, ecx
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub edi, esi
mov eax, edi
sbb ecx, 0
mul edx
lea esi, [eax + eax]
lea esi, [esi + esi*4]
cmp esi, ebx
jne 0x4fad77
imul esi, edi, 0xcccccccc
imul ecx, ecx, 0xcccccccd
add edx, esi
add ecx, edx
mov edx, dword [esp + 0x38]
nop word cs:[eax + eax]
nop
inc dword [esp]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], eax
jo 0x4fb328
mov ecx, dword [esp + 0x18]
mov ebx, edx
mov esi, ecx
shr ecx, 1
shld esi, edx, 0x1f
mov edx, 0xcccccccd
mov edi, esi
add edi, ecx
adc edi, 0
mov eax, edi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub edi, eax
sub esi, edi
mov edi, dword [esp + 0xc]
mov eax, esi
sbb ecx, 0
imul esi, esi, 0xcccccccc
mul edx
imul ecx, ecx, 0xcccccccd
add esi, edx
mov dword [esp + 8], eax
mov edx, 0xcccccccd
add ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, eax
add ecx, eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x14]
neg eax
add bl, al
cmp byte [esp + 0x10], 0
mov byte [esp + 0x20], bl
mov dword [esp + 0x10], ebx
sete al
and cl, al
mov eax, dword [esp + 4]
mov dword [esp + 0x14], ecx
mov ecx, edi
shr edi, 1
shld ecx, eax, 0x1f
mov esi, ecx
add esi, edi
adc esi, 0
mov eax, esi
mul edx
shr edx, 2
lea eax, [edx + edx*4]
mov edx, 0xcccccccd
sub esi, eax
sub ecx, esi
mov eax, ecx
sbb edi, 0
imul esi, ecx, 0xcccccccc
mul edx
imul ecx, edi, 0xcccccccd
mov edi, dword [esp + 8]
add esi, edx
mov edx, eax
add ecx, esi
mov esi, dword [esp + 4]
add edx, eax
lea edx, [edx + edx*4]
cmp edx, esi
mov edx, edi
je 0x4fac80
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
mov ah, byte [esp + 0x20]
mov ebx, esi
jmp 0x4fad89
mov edi, dword [esp + 0x38]
jmp 0x4fad87
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x1c]
mov ah, al
test byte [esp + 0x58], 1
sete al
test al, dl
mov edx, edi
jne 0x4fada3
xor ecx, dword [esp + 0x18]
xor ebx, edx
mov al, 1
or ecx, ebx
je 0x4fadc2
mov al, dl
movzx ecx, ah
and al, 1
or al, 4
cmp ah, 5
movzx eax, al
cmovne eax, ecx
cmp byte [esp + 0x14], 0
cmove eax, ecx
cmp al, 5
setae al
movzx eax, al
mov ebx, dword [ebp + 0xc]
add edx, eax
adc dword [esp + 0x18], 0
jb 0x4fb36e
mov ecx, dword [esp]
add ecx, dword [esp + 0x3c]
jo 0x4fb33c
mov edi, dword [esp + 0x18]
mov eax, 0x6fc0ffff
mov esi, 0x11
cmp eax, edx
mov eax, 0x2386f2
sbb eax, edi
jb 0x4fafb1
mov eax, 0xa4c67fff
mov esi, 0x10
cmp eax, edx
mov eax, 0x38d7e
sbb eax, edi
jb 0x4fafb1
mov eax, 0x107a3fff
mov esi, 0xf
cmp eax, edx
mov eax, 0x5af3
sbb eax, edi
jb 0x4fafb1
mov dword [esp], ecx
mov ecx, edi
mov dword [esp + 8], edx
mov esi, 0x48c27394
xor eax, eax
shld ecx, edx, 0x13
mov edx, edi
shr edx, 0xd
cmp esi, ecx
mov ecx, 0
mov esi, 0xe
sbb ecx, edx
mov edx, dword [esp + 8]
mov ecx, dword [esp]
jb 0x4fafb1
mov ecx, edi
mov esi, 0xe8d4a50
shld ecx, edx, 0x14
mov edx, edi
shr edx, 0xc
cmp esi, ecx
mov ecx, dword [esp]
mov esi, 0xd
sbb eax, edx
mov edx, dword [esp + 8]
jb 0x4fafb1
mov ecx, edi
mov esi, 0x2e90edc
xor eax, eax
shld ecx, edx, 0x15
mov edx, edi
shr edx, 0xb
cmp esi, ecx
mov ecx, 0
mov esi, 0xc
sbb ecx, edx
mov edx, dword [esp + 8]
mov ecx, dword [esp]
jb 0x4fafb1
mov ecx, edi
mov esi, 0x9502f8
shld ecx, edx, 0x16
mov edx, edi
shr edx, 0xa
cmp esi, ecx
mov ecx, dword [esp]
mov esi, 0xb
sbb eax, edx
mov edx, dword [esp + 8]
jb 0x4fafb1
mov ecx, 0x3b9ac9ff
xor eax, eax
mov esi, 0xa
cmp ecx, edx
mov ecx, 0
sbb ecx, edi
mov ecx, dword [esp]
jb 0x4fafb1
mov ecx, 0x5f5e0ff
mov esi, 9
cmp ecx, edx
mov ecx, dword [esp]
sbb eax, edi
jb 0x4fafb1
mov ecx, 0x98967f
xor eax, eax
mov esi, 8
cmp ecx, edx
mov ecx, 0
sbb ecx, edi
mov ecx, dword [esp]
jb 0x4fafb1
mov ecx, 0xf423f
mov esi, 7
cmp ecx, edx
mov ecx, dword [esp]
sbb eax, edi
jb 0x4fafb1
mov ecx, 0x1869f
xor eax, eax
mov esi, 6
cmp ecx, edx
mov ecx, 0
sbb ecx, edi
mov ecx, dword [esp]
jb 0x4fafb1
mov ecx, 0x270f
mov esi, 5
cmp ecx, edx
mov ecx, dword [esp]
sbb eax, edi
jb 0x4fafb1
mov ecx, 0x3e7
xor eax, eax
mov esi, 4
cmp ecx, edx
mov ecx, 0
sbb ecx, edi
mov ecx, dword [esp]
jb 0x4fafb1
mov ecx, 0x63
mov esi, 3
cmp ecx, edx
mov ecx, dword [esp]
sbb eax, edi
jb 0x4fafb1
mov eax, 9
xor esi, esi
cmp eax, edx
mov eax, 0
sbb eax, edi
adc esi, 1
mov edi, esi
add edi, ecx
jo 0x4fb346
test ecx, ecx
js 0x4fb02a
cmp edi, 0x11
jge 0x4fb02a
mov eax, dword [esp + 0x24]
mov ebx, edi
mov edi, ecx
mov ecx, edx
mov edx, dword [esp + 0x18]
add eax, esi
push eax
call sym.ryu::pretty::mantissa::write_mantissa_long::hc7e0cda61b8a69e9
add esp, 4
mov edx, dword [esp + 0x34]
cmp esi, ebx
jge 0x4fb003
mov ecx, edi
nop word [eax + eax]
mov eax, edx
add eax, esi
jo 0x4fb30a
inc esi
dec ecx
mov byte [esp + eax + 0x40], 0x30
jne 0x4faff0
mov eax, dword [esp + 0x24]
add edx, ebx
mov word [eax + ebx], 0x302e
mov ebx, dword [ebp + 0xc]
jb 0x4fb350
add edx, 2
jb 0x4fb350
lea eax, [esp + 0x40]
jmp 0x4fa148
lea eax, [edi - 1]
cmp eax, 0x10
jae 0x4fb077
mov dword [esp + 4], edi
mov edi, dword [esp + 0x24]
mov ecx, edx
mov edx, dword [esp + 0x18]
lea eax, [edi + esi + 1]
push eax
call sym.ryu::pretty::mantissa::write_mantissa_long::hc7e0cda61b8a69e9
add esp, 4
lea eax, [edi + 1]
push dword [esp + 4]
push eax
push edi
call sub.msvcrt.dll_memmove
add esp, 0xc
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 4]
mov byte [edi + eax], 0x2e
lea edx, [edx + esi + 1]
lea eax, [esp + 0x40]
jmp 0x4fa148
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
lea eax, [edi + 4]
cmp eax, 5
jae 0x4fb14a
mov eax, dword [esp + 0x24]
mov ebx, 2
mov ecx, 2
mov byte [esp + edx + 0x40], 0x30
sub ebx, edi
test edi, edi
mov byte [eax + 1], 0x2e
jns 0x4fb2d6
cmp ebx, 4
mov eax, 3
cmovae eax, ebx
lea edi, [eax - 2]
cmp edi, 8
jb 0x4fb2c7
xor edx, edx
cmp edi, 0x20
mov ecx, edi
mov dword [esp + 4], edi
jb 0x4fb109
mov edx, ecx
mov ecx, dword [esp + 0x24]
movaps xmm0, xmmword [str.000000000000000000000000]
and edx, 0xffffffe0
mov edi, edx
add ecx, 0x12
movups xmmword [ecx - 0x10], xmm0
movups xmmword [ecx], xmm0
add ecx, 0x20
add edi, 0xffffffe0
jne 0x4fb0e5
mov ecx, dword [esp + 4]
cmp ecx, edx
je 0x4fb2d6
test cl, 0x18
je 0x4fb2c2
and ecx, 0xfffffff8
movsd xmm0, qword [0x576af0]
lea edi, [ecx + 2]
mov dword [esp + 0xc], ecx
mov dword [esp], edi
mov edi, dword [esp + 0x24]
lea edi, [edx + edi + 2]
sub edx, ecx
movsd qword [edi], xmm0
add edi, 8
add edx, 8
jne 0x4fb128
mov ecx, dword [esp + 0xc]
cmp dword [esp + 4], ecx
mov ecx, dword [esp]
jne 0x4fb2c7
jmp 0x4fb2d6
cmp esi, 1
jne 0x4fb184
mov eax, dword [esp + 8]
add al, 0x30
jb 0x4fb396
mov ecx, dword [esp + 0x24]
dec edi
mov byte [esp + edx + 0x40], al
mov byte [ecx + 1], 0x65
jo 0x4fb3aa
or edx, 2
test edi, edi
lea esi, [esp + edx + 0x40]
js 0x4fb232
mov ecx, edi
jmp 0x4fb240
lea ebx, [esi + edx]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
lea eax, [esp + ebx + 0x41]
push eax
call sym.ryu::pretty::mantissa::write_mantissa_long::hc7e0cda61b8a69e9
mov edx, dword [esp + 0x38]
add esp, 4
mov ecx, dword [esp + 0x24]
dec edi
movzx eax, byte [ecx + 1]
mov byte [esp + edx + 0x40], al
mov byte [ecx + 1], 0x2e
mov byte [esp + ebx + 0x41], 0x65
jo 0x4fb3a0
lea eax, [esp + ebx + 0x40]
test edi, edi
lea ebx, [eax + 2]
js 0x4fb1cb
mov ecx, edi
jmp 0x4fb1dd
mov ecx, edi
mov byte [ebx], 0x2d
neg ecx
jo 0x4fb3be
add eax, 3
mov ebx, eax
cmp ecx, 0x63
jbe 0x4fb21a
mov edx, 0x51eb851f
mov eax, ecx
mul edx
shr edx, 5
mov eax, edx
add al, 0x30
jb 0x4fb3b4
imul edx, edx, 0x64
mov byte [ebx], al
shr edi, 0x1f
sub ecx, edx
mov edx, dword [esp + 0x34]
add edi, 3
movzx eax, word [ecx + ecx + 0x5aeb60]
mov word [ebx + 1], ax
jmp 0x4fb29f
cmp ecx, 9
jbe 0x4fb296
movzx eax, word [ecx + ecx + 0x5aeb60]
shr edi, 0x1f
or edi, 2
mov word [ebx], ax
jmp 0x4fb29f
mov ecx, edi
mov byte [esi], 0x2d
neg ecx
jo 0x4fb3be
inc esi
cmp ecx, 0x63
jbe 0x4fb27e
mov dword [esp + 0x34], edx
mov edx, 0x51eb851f
mov eax, ecx
mul edx
shr edx, 5
mov eax, edx
add al, 0x30
jb 0x4fb3b4
imul edx, edx, 0x64
mov byte [esi], al
shr edi, 0x1f
sub ecx, edx
mov edx, dword [esp + 0x34]
add edi, 3
movzx eax, word [ecx + ecx + 0x5aeb60]
mov word [esi + 1], ax
jmp 0x4fb2b7
cmp ecx, 9
jbe 0x4fb2ae
movzx eax, word [ecx + ecx + 0x5aeb60]
shr edi, 0x1f
or edi, 2
mov word [esi], ax
jmp 0x4fb2b7
or cl, 0x30
shr edi, 0x1f
mov byte [ebx], cl
inc edi
lea edx, [esi + edx + 2]
lea eax, [esp + 0x40]
add edx, edi
jmp 0x4fa145
or cl, 0x30
shr edi, 0x1f
mov byte [esi], cl
inc edi
add edx, edi
lea eax, [esp + 0x40]
jmp 0x4fa148
or edx, 2
mov ecx, edx
mov edx, dword [esp + 0x24]
sub eax, ecx
add edx, ecx
mov byte [edx], 0x30
inc edx
dec eax
jne 0x4fb2cf
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 8]
add eax, esi
add eax, ebx
push eax
call sym.ryu::pretty::mantissa::write_mantissa_long::hc7e0cda61b8a69e9
add esp, 4
mov edx, dword [esp + 0x34]
lea eax, [esp + 0x40]
add edx, esi
add edx, ebx
jmp 0x4fa145
mov ecx, 0x5ac09c
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5aedd8
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5ac0bc
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5aeb20
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5ac0cc
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5abfe8
call sym.core::panicking::panic_const::panic_const_mul_overflow::h70cc655524f1cd1d
mov ecx, 0x5ac0ec
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5aed88
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5aedc8
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5ac06c
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5ac04c
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5ac0dc
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5ac05c
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5ac08c
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5ac07c
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5aed98
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5aedb8
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5aeda8
call sym.core::panicking::panic_const::panic_const_sub_overflow::h31f5191bdbee8bd5
mov ecx, 0x5aec98
call sym.core::panicking::panic_const::panic_const_add_overflow::hf3b41c4c75c49a6d
mov ecx, 0x5aec88
call sym.core::panicking::panic_const::panic_const_neg_overflow::h926dddbb4d573d1e
ud2