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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x78]
cmp eax, dword [ecx + 8]
jbe 0x47916e
sub esp, 0xf8
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
test edx, edx
xchg esi, ebx
sete bl
xchg esi, ebx
and ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x479143
mov ebp, dword [ecx + 8]
test ebp, ebp
jne 0x47912e
mov esi, dword [esp + 0x104]
mov eax, ecx
mov ecx, dword [esi]
mov edi, ebp
mov ebp, dword [esi + 4]
cmp edx, ecx
sete dl
cmp ebx, ebp
sete bl
and edx, ebx
test dl, dl
je 0x47911b
mov edx, dword [esi + 8]
mov dword [esp + 0xa4], edx
cmp edx, edi
jne 0x479108
movzx ebx, byte [esi + 0xc]
mov byte [esp + 0x33], bl
mov edi, esi
movzx esi, byte [eax + 0xc]
xchg esi, eax
cmp bl, al
xchg esi, eax
jne 0x4790fc
mov esi, dword [esp + 0x108]
mov ebx, dword [esi]
mov edx, dword [esi + 4]
cmp ebp, edx
sete dl
cmp ecx, ebx
sete cl
and edx, ecx
test dl, dl
je 0x478860
mov ecx, dword [esi + 8]
mov edx, dword [esp + 0xa4]
cmp ecx, edx
jne 0x478860
movzx ecx, byte [esi + 0xc]
movzx edx, byte [esp + 0x33]
cmp dl, cl
jne 0x478860
lea edi, [esp + 0xe0]
xor eax, eax
call fcn.00449e6a
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov eax, 0x17
mov dword [esp + 0x34], edx
mov dword [esp + 0x48], eax
test edx, edx
xchg ebp, ebx
seta bl
xchg ebp, ebx
test ebx, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
and ebp, esi
test ebx, ebx
xchg esi, ebx
seta bl
xchg esi, ebx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4787c4
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call dbg.runtime.uint64div
mov eax, dword [esp + 0x10]
mov ecx, eax
mov eax, 0xa
mul ecx
mov edx, dword [esp + 0x34]
sub edx, eax
add edx, 0x30
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x48]
cmp ebx, 0x18
jae 0x4787bd
mov byte [esp + ebx + 0xe0], dl
lea ebp, [ebx - 1]
mov edx, ecx
mov ebx, eax
mov eax, ebp
mov ecx, dword [esp + 0xfc]
jmp 0x478735
call dbg.runtime.panicindex
ud2
lea edx, [eax - 0x18]
neg edx
dec edx
mov ebx, dword [esp + 0x100]
xor ebp, ebp
cmp ebp, edx
jge 0x478802
lea esi, [ebp + eax + 1]
cmp esi, 0x18
jae 0x478859
movzx esi, byte [esp + esi + 0xe0]
mov edi, dword [ebx]
mov ecx, dword [ebx + 4]
cmp ebp, ecx
jae 0x478859
xchg esi, eax
mov byte [edi + ebp], al
xchg esi, eax
inc ebp
mov ecx, dword [esp + 0xfc]
cmp ebp, edx
jl 0x4787d7
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], edx
mov eax, dword [ebx + 0xc]
test eax, eax
jle 0x47882f
mov edx, dword [ebx + 4]
mov ebp, dword [ebx]
lea esi, [eax - 1]
cmp esi, edx
jae 0x478852
movzx edx, byte [ebp + eax - 1]
cmp dl, 0x30
jne 0x47884e
mov dword [ebx + 0xc], esi
mov eax, dword [ebx + 0xc]
test eax, eax
jg 0x47880f
jne 0x478838
mov dword [ebx + 0x10], 0
movzx eax, byte [ecx + 0xc]
mov byte [ebx + 0x14], al
mov byte [esp + 0x10c], 1
add esp, 0xf8
ret
test eax, eax
jmp 0x47882f
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
mov dword [esp], esi
call dbg.strconv.(*extFloat).Normalize
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x108]
mov ebx, dword [edx + 8]
cmp ecx, ebx
jle 0x4788e7
mov ebp, dword [eax]
mov dword [esp + 0xa0], ebp
sub ecx, ebx
mov dword [esp + 0xa4], ecx
mov ebx, ebp
shl ebp, cl
cmp ecx, 0x20
sbb esi, esi
and ebp, esi
mov edi, dword [eax + 4]
mov dword [eax], ebp
lea ebp, [ecx - 0x20]
mov ecx, ebp
shl ebx, cl
cmp ecx, 0x20
sbb edx, edx
and edx, ebx
mov ecx, dword [esp + 0xa4]
shl edi, cl
and esi, edi
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov ecx, ebp
mov ebx, dword [esp + 0xa0]
shr ebx, cl
cmp ecx, 0x20
sbb ebp, ebp
and ebp, ebx
or esi, ebp
or edx, esi
mov dword [eax + 4], edx
mov edx, dword [esp + 0x108]
mov ebx, dword [edx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0x104]
mov ecx, dword [ebx + 8]
mov ebp, dword [edx + 8]
cmp ecx, ebp
jle 0x478964
mov esi, dword [ebx]
mov dword [esp + 0xa0], esi
sub ecx, ebp
mov dword [esp + 0xa4], ecx
mov ebp, esi
shl esi, cl
cmp ecx, 0x20
sbb edi, edi
and esi, edi
mov eax, dword [ebx + 4]
mov dword [ebx], esi
lea esi, [ecx - 0x20]
mov dword [esp + 0x9c], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
mov ecx, esi
shr ebp, cl
cmp ecx, 0x20
sbb esi, esi
and esi, ebp
mov ecx, dword [esp + 0xa4]
shl eax, cl
and edi, eax
mov ecx, dword [esp + 0x9c]
mov eax, dword [esp + 0xa0]
shl eax, cl
cmp ecx, 0x20
sbb ebp, ebp
and ebp, eax
or esi, edi
or ebp, esi
mov dword [ebx + 4], ebp
mov eax, dword [edx + 8]
mov dword [ebx + 8], eax
mov dword [esp], ebx
mov eax, dword [esp + 0xfc]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call dbg.strconv.frexp10Many
mov eax, dword [esp + 0x108]
mov ecx, dword [eax]
add ecx, 1
mov edx, dword [esp + 0xc]
mov dword [esp + 0x68], edx
mov ebx, dword [eax + 4]
mov dword [eax], ecx
adc ebx, 0
mov dword [eax + 4], ebx
mov ecx, dword [esp + 0x104]
mov ebx, dword [ecx]
add ebx, 0xffffffff
mov ebp, dword [ecx + 4]
mov dword [ecx], ebx
adc ebp, 0xffffffff
mov dword [esp + 0x98], ebp
mov dword [ecx + 4], ebp
mov ebx, dword [eax + 8]
neg ebx
mov dword [esp + 0xa4], ebx
mov esi, dword [eax + 4]
mov dword [esp + 0xa0], esi
lea edi, [ebx - 0x20]
mov dword [esp + 0x9c], edi
mov ecx, edi
shr esi, cl
mov eax, dword [eax]
mov dword [esp + 0x94], eax
mov ecx, ebx
shr eax, cl
cmp ecx, 0x20
sbb edx, edx
mov dword [esp + 0x90], edx
and eax, edx
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x8c], edi
mov ecx, edi
mov ebp, dword [esp + 0xa0]
shl ebp, cl
cmp ecx, 0x20
sbb ecx, ecx
mov dword [esp + 0x88], ecx
and ebp, ecx
or eax, ebp
mov ebp, dword [esp + 0x9c]
cmp ebp, 0x20
sbb ebp, ebp
mov dword [esp + 0x84], ebp
and esi, ebp
or eax, esi
mov dword [esp + 0x80], eax
mov esi, ecx
mov ecx, ebx
shl eax, cl
and eax, edx
mov edx, dword [esp + 0x94]
sub edx, eax
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x104]
mov edx, dword [edx]
mov ecx, dword [esp + 0x94]
sub ecx, edx
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xfc]
mov ebx, dword [ecx]
mov dword [esp + 0x7c], ebx
mov ecx, dword [esp + 0x94]
sub ecx, ebx
mov dword [esp + 0x38], ecx
mov ecx, edi
mov ebx, dword [esp + 0x80]
shr ebx, cl
and ebx, esi
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x80]
shl esi, cl
and esi, ebp
or ebx, esi
mov esi, dword [esp + 0x94]
sub esi, eax
mov eax, dword [esp + 0xa0]
mov esi, eax
sbb eax, ebx
mov dword [esp + 0x78], eax
mov ebx, dword [esp + 0x94]
sub ebx, edx
mov edx, dword [esp + 0x98]
mov ebx, esi
sbb esi, edx
mov dword [esp + 0x98], esi
mov edx, dword [esp + 0xfc]
mov edx, dword [edx + 4]
mov esi, dword [esp + 0x94]
mov eax, dword [esp + 0x7c]
sub esi, eax
sbb ebx, edx
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x80]
xor edx, edx
xor esi, esi
mov dword [esp + 0xd8], eax
mov eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd8]
cmp edx, 0x14
jge 0x478b76
test esi, esi
sete bl
mov ebp, dword [esp + 0x40]
cmp ebp, eax
xchg edi, ebx
seta bl
xchg edi, ebx
and ebx, edi
test esi, esi
xchg edi, ebx
seta bl
xchg edi, ebx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x478b78
mov eax, 0xa
mov edi, edx
mul ebp
lea ebp, [edi + 1]
lea esi, [esi + esi*4]
shl esi, 1
add esi, edx
mov ebx, dword [esp + 0x74]
mov edi, dword [esp + 0x8c]
mov edx, ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
cmp edx, 0x14
jl 0x478b1a
xor edx, edx
mov dword [esp + 0x54], edx
mov ebx, dword [esp + 0x98]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xd0], eax
xor eax, eax
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jge 0x478ce0
sub edx, ebx
lea esi, [edx - 1]
cmp esi, 0x14
jae 0x4790f5
shl edx, 3
lea esi, [0x729e60]
mov ebp, dword [esi + edx - 4]
mov dword [esp + 0x44], ebp
mov edx, dword [esi + edx - 8]
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4790ee
mov ebp, edx
xor edx, edx
div ebp
mov edx, dword [esp + 0x100]
mov esi, dword [edx]
mov edx, dword [edx + 4]
cmp ebx, edx
jae 0x4790e7
mov edx, eax
imul eax, ebp
mov ebp, dword [esp + 0x58]
sub ebp, eax
mov dword [esp + 0x58], ebp
mov eax, ecx
mov ecx, dword [esp + 0xa4]
shl ebp, cl
mov edi, dword [esp + 0x90]
and ebp, edi
mov edi, dword [esp + 0x60]
add edi, ebp
mov dword [esp + 0x6c], edi
add edx, 0x30
mov byte [esi + ebx], dl
mov ecx, eax
mov esi, dword [esp + 0x58]
shl esi, cl
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x58]
shr edx, cl
mov ebx, dword [esp + 0x88]
and edx, ebx
mov ebx, dword [esp + 0x84]
and esi, ebx
or edx, esi
mov esi, dword [esp + 0x60]
add ebp, esi
mov ebp, dword [esp + 0x78]
adc edx, ebp
mov ebp, dword [esp + 0x98]
cmp edx, ebp
sete bl
mov esi, dword [esp + 0x70]
cmp edi, esi
xchg edi, ebx
setb bl
xchg edi, ebx
and ebx, edi
cmp edx, ebp
xchg edi, ebx
setb bl
xchg edi, ebx
or edi, ebx
xchg edi, eax
test al, al
xchg edi, eax
jne 0x47901b
mov edx, dword [esp + 0x5c]
inc edx
mov ebx, dword [esp + 0x88]
mov edi, dword [esp + 0x84]
mov ecx, eax
mov ebx, ebp
mov ebp, dword [esp + 0x88]
mov esi, edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x5c], edx
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jl 0x478bbc
mov ebx, dword [esp + 0x100]
mov dword [ebx + 0xc], edx
mov eax, esi
mov esi, dword [esp + 0x68]
add edx, esi
mov dword [ebx + 0x10], edx
mov edx, dword [esp + 0xfc]
movzx edx, byte [edx + 0xc]
mov byte [ebx + 0x14], dl
mov edx, dword [esp + 0x98]
mov esi, dword [esp + 0x90]
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x64], eax
mov dword [esp + 0xc0], ecx
xor ecx, ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0xb8], edx
mov edx, 1
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xb8]
mov eax, 0xa
mov edx, dword [esp + 0x60]
mul edx
mov dword [esp + 0xa0], edx
mov dword [esp + 0x60], eax
mov eax, 0xa
mov ebx, dword [esp + 0x4c]
mul ebx
mov dword [esp + 0x4c], eax
mov ebx, dword [esp + 0x64]
lea ebx, [ebx + ebx*4]
shl ebx, 1
mov ebp, dword [esp + 0xa0]
add ebx, ebp
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0x50]
lea ebp, [ebp + ebp*4]
shl ebp, 1
add edx, ebp
mov dword [esp + 0x50], edx
mov ebp, ebx
shr ebx, cl
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x60]
shr edx, cl
mov ecx, edi
shl ebp, cl
and edx, esi
mov edi, dword [esp + 0x88]
and ebp, edi
or edx, ebp
mov ebp, dword [esp + 0x84]
and ebx, ebp
or edx, ebx
mov dword [esp + 0xa0], edx
mov ebx, dword [esp + 0x100]
mov ebp, dword [ebx + 4]
mov edi, dword [ebx + 0xc]
mov ebx, dword [ebx]
cmp edi, ebp
jae 0x479014
mov ebp, ecx
mov ecx, dword [esp + 0xa4]
shl edx, cl
and edx, esi
mov dword [esp + 0x94], edx
mov esi, dword [esp + 0x60]
sub esi, edx
mov dword [esp + 0x80], esi
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x4c]
mul esi
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0xa0]
lea esi, [edx + 0x30]
xchg esi, eax
mov byte [ebx + edi], al
xchg esi, eax
mov ebx, dword [esp + 0x100]
mov esi, dword [ebx + 0xc]
inc esi
mov dword [ebx + 0xc], esi
mov esi, ecx
mov ecx, ebp
mov edi, edx
shr edx, cl
mov ecx, dword [esp + 0x9c]
shl edi, cl
mov ebx, dword [esp + 0xa0]
sar ebx, 0x1f
mov ecx, esi
shl ebx, cl
mov ebp, dword [esp + 0x90]
and ebx, ebp
mov ebp, dword [esp + 0x88]
and edx, ebp
or ebx, edx
mov edx, dword [esp + 0x84]
and edi, edx
or ebx, edi
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x94]
sub edi, edx
mov edx, dword [esp + 0x64]
sbb edx, ebx
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x50]
imul ebx, edi
mov ebp, dword [esp + 0x98]
mov esi, dword [esp + 0x4c]
imul ebp, esi
mov esi, dword [esp + 0x7c]
add ebp, esi
add ebx, ebp
cmp edx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov esi, dword [esp + 0x80]
cmp esi, eax
xchg esi, ebx
setb bl
xchg esi, ebx
and ebp, esi
cmp edx, ebx
xchg esi, ebx
setb bl
xchg esi, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x478f46
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x88]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x9c]
mov eax, ebp
mov ecx, esi
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x100]
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0xb0], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x64], edx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x98]
jmp 0x478d52
mov dword [esp + 0xa0], ebx
mov ebp, eax
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x4c]
mul esi
mov ebx, dword [esp + 0x100]
mov dword [esp], ebx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x38]
imul ebx, edi
mov eax, edi
mov edi, dword [esp + 0x74]
imul edi, esi
add edx, edi
add edx, ebx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebp
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x18], edx
mov edx, 1
shl edx, cl
mov ebx, dword [esp + 0x90]
and ebx, edx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x8c]
mov edx, 1
shr edx, cl
mov ecx, dword [esp + 0x9c]
mov ebx, 1
shl ebx, cl
mov ebp, dword [esp + 0x88]
and edx, ebp
mov ebp, dword [esp + 0x84]
and ebp, ebx
or edx, ebp
mov dword [esp + 0x20], edx
mov edx, esi
shl esi, 1
mov dword [esp + 0x24], esi
shl eax, 1
shr edx, 0x1f
or eax, edx
mov dword [esp + 0x28], eax
call dbg.strconv.adjustLastDigit
movzx edx, byte [esp + 0x2c]
mov byte [esp + 0x10c], dl
add esp, 0xf8
ret
call dbg.runtime.panicindex
ud2
mov ebx, dword [esp + 0x5c]
inc ebx
mov edi, dword [esp + 0x100]
mov dword [edi + 0xc], ebx
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x68]
add eax, ebx
mov dword [edi + 0x10], eax
mov eax, dword [esp + 0xfc]
movzx eax, byte [eax + 0xc]
mov byte [edi + 0x14], al
mov dword [esp], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, dword [esp + 0x38]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebp
mov eax, ecx
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0x3c]
mov ebx, edx
shl edx, cl
mov ebp, dword [esp + 0x90]
and edx, ebp
mov dword [esp + 0x1c], edx
mov edx, ecx
mov ecx, dword [esp + 0x9c]
mov esi, ebx
shl ebx, cl
mov ecx, eax
shr esi, cl
mov ecx, edx
mov eax, dword [esp + 0x44]
shl eax, cl
and ebp, eax
mov eax, dword [esp + 0x88]
and eax, esi
or ebp, eax
mov eax, dword [esp + 0x84]
and eax, ebx
or ebp, eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0
call dbg.strconv.adjustLastDigit
movzx eax, byte [esp + 0x2c]
mov byte [esp + 0x10c], al
add esp, 0xf8
ret
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicdivide
ud2
call dbg.runtime.panicindex
ud2
mov esi, dword [esp + 0x108]
jmp 0x478860
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x104]
jmp 0x478860
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x104]
jmp 0x478860
mov eax, ecx
mov esi, dword [esp + 0x108]
mov edi, dword [esp + 0x104]
jmp 0x478860
mov eax, dword [esp + 0x100]
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
movzx ecx, byte [ecx + 0xc]
mov byte [eax + 0x14], cl
mov byte [esp + 0x10c], 1
add esp, 0xf8
ret
call dbg.runtime.morestack_noctxt
jmp dbg.strconv.(*extFloat).ShortestDecimal