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

Disassembly:
mov ecx, dword [0x58ea34]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x478b92
sub esp, 0x6c
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + 4]
mov edx, 1
shl edx, cl
mov ebx, dword [eax + 8]
mov dword [esp + 0x5c], ebx
mov ebp, dword [eax]
mov dword [esp + 0x58], ebp
mov esi, dword [esp + 0x84]
add esi, ebp
cmp ecx, 0x20
sbb edi, edi
and edx, edi
mov dword [esp + 0x54], edx
lea edi, [edx + ebx - 2]
mov dword [esp + 0x14], edi
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x50], eax
jmp 0x478611
mov ecx, dword [esp + 0x4c]
shl ecx, 1
mov eax, dword [esp + 0x50]
mov edx, eax
shr eax, 0x1f
or ecx, eax
shl edx, 1
mov eax, dword [esp + 0x48]
lea esi, [eax - 1]
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x50]
test eax, eax
setne dl
test ecx, ecx
xchg edi, ebx
setne bl
xchg edi, ebx
or edi, edx
xchg edi, eax
test al, al
xchg edi, eax
je 0x4786a2
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], esi
lea edx, [ebp - 0x1e]
mov edi, ecx
mov ecx, edx
shr edi, cl
neg ecx
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x4c]
shl ebx, cl
add ebp, 2
mov ecx, ebp
shr eax, cl
mov esi, dword [esp + 0x4c]
shr esi, cl
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x44]
cmp esi, 0x20
sbb esi, esi
and ebx, esi
cmp ecx, 0x20
sbb ebp, ebp
and eax, ebp
or eax, ebx
cmp edx, 0x20
sbb edx, edx
and edx, edi
or edx, eax
test edx, edx
sete al
mov edx, dword [esp + 0x40]
test ebp, edx
sete dl
and edx, eax
test dl, dl
jne 0x4785e3
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x48]
movzx edx, byte [esp + 0x89]
test dl, dl
je 0x4786dc
or eax, 1
jmp 0x4786dc
mov eax, dword [esp + 0x50]
mov edx, eax
shr edx, 1
mov ecx, dword [esp + 0x4c]
mov edi, ecx
shl edi, 0x1f
or edi, edx
and eax, 1
shr ecx, 1
or eax, edi
mov edx, dword [esp + 0x48]
lea esi, [edx + 1]
mov ebp, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], esi
lea edx, [ebp - 0x1d]
mov edi, ecx
mov ecx, edx
shr edi, cl
neg ecx
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x4c]
shl ebx, cl
add ebp, 3
mov ecx, ebp
shr eax, cl
mov esi, dword [esp + 0x4c]
shr esi, cl
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x44]
cmp esi, 0x20
sbb esi, esi
and ebx, esi
cmp edx, 0x20
sbb edx, edx
and edi, edx
cmp ecx, 0x20
sbb edx, edx
and eax, edx
or eax, ebx
or eax, edi
mov ebx, dword [esp + 0x40]
test edx, ebx
setne dl
test eax, eax
setne al
or edx, eax
test dl, dl
jne 0x4786b3
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x48]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
jmp 0x478768
mov ebx, eax
shr ebx, 1
mov ebp, ecx
shl ebp, 0x1f
or ebp, ebx
and eax, 1
shr ecx, 1
or eax, ebp
inc esi
test ecx, ecx
seta bl
xchg ebp, ebx
sete bl
xchg ebp, ebx
cmp eax, 1
xchg edi, ebx
seta bl
xchg edi, ebx
and ebp, edi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x47878f
lea ebx, [edx - 1]
cmp esi, ebx
jl 0x478755
mov ebx, eax
and eax, 3
shr ebx, 2
mov ebp, ecx
shl ecx, 0x1e
or ecx, ebx
mov ebx, ecx
and ecx, 1
or ecx, eax
shr ebp, 2
lea eax, [esi + 2]
cmp ecx, 3
xchg edi, ebx
sete bl
xchg edi, ebx
and edi, 1
xchg edi, eax
test al, al
xchg edi, eax
je 0x47884a
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], esi
mov edi, dword [esp + 0x58]
lea ecx, [edi - 0x1f]
mov dword [esp + 0x50], ecx
mov edx, 1
shl edx, cl
neg ecx
mov dword [esp + 0x4c], ecx
mov eax, 1
shr eax, cl
inc edi
mov ecx, edi
mov esi, 1
shl esi, cl
add ebx, 1
adc ebp, 0
cmp ecx, 0x20
sbb edi, edi
and edi, esi
cmp ebx, edi
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x50]
cmp edi, 0x20
sbb edi, edi
and edx, edi
mov edi, dword [esp + 0x4c]
cmp edi, 0x20
sbb edi, edi
and eax, edi
or edx, eax
cmp edx, ebp
sete al
and esi, eax
xchg esi, eax
test al, al
xchg esi, eax
je 0x478842
shr ebx, 1
mov edx, ebp
shl edx, 0x1f
or ebx, edx
shr ebp, 1
mov edx, dword [esp + 0x48]
lea eax, [edx + 3]
jmp 0x478846
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x58]
mov esi, ebp
shr ebp, cl
shr ebx, cl
lea edi, [ecx - 0x20]
mov dword [esp + 0x44], edi
mov ecx, edi
shr esi, cl
neg ecx
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x4c]
shl eax, cl
cmp ecx, 0x20
sbb ecx, ecx
mov dword [esp + 0x38], ecx
and eax, ecx
cmp edi, 0x20
sbb ecx, ecx
mov dword [esp + 0x34], ecx
and esi, ecx
mov edi, dword [esp + 0x58]
cmp edi, 0x20
sbb ecx, ecx
and ebx, ecx
or eax, ebx
or esi, eax
test esi, esi
sete al
test ecx, ebp
sete bl
and eax, ebx
test al, al
je 0x4788b0
mov eax, edx
jmp 0x4788b6
mov eax, edx
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x14]
cmp edx, ebx
jle 0x4789e5
mov edx, ecx
mov ecx, dword [esp + 0x40]
mov ebx, 1
shr ebx, cl
mov ecx, edi
mov ebp, 1
shl ebp, cl
mov ecx, dword [esp + 0x44]
mov esi, 1
shl esi, cl
mov edi, dword [esp + 0x38]
and ebx, edi
mov edi, dword [esp + 0x34]
and esi, edi
or esi, ebx
mov dword [esp + 0x50], esi
and ebp, edx
mov dword [esp + 0x4c], ebp
mov edx, dword [esp + 0x54]
lea eax, [edx + eax - 1]
mov dword [esp + 0x5c], eax
mov edx, dword [esp + 0x74]
test edx, edx
jne 0x478915
xor edx, edx
xor ecx, ecx
jmp 0x47895e
mov dword [esp], edx
mov dword [esp + 4], 0
mov byte [esp + 8], 0
call sym.runtime.mallocgc
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
mov dword [esp], eax
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov eax, dword [esp + 0x68]
mov ecx, eax
neg eax
mov edx, dword [esp + 0x74]
cmp edx, eax
ja 0x478b8c
mov dword [esp + 0x10], edx
mov dword [esp + 0x60], ecx
lea eax, [0x4b8820]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xa
lea ecx, [0x4c3f2e]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x58eb08]
test ecx, ecx
jne 0x47899e
mov edx, dword [esp + 0x60]
jmp 0x4789a9
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x60]
mov dword [edi], edx
mov dword [eax + 8], edx
mov edx, dword [0x56bd70]
mov ebx, dword [0x56bd74]
mov dword [eax + 0x10], edx
mov edx, dword [0x58eb08]
test edx, edx
je 0x4789cc
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebx
mov dword [eax + 0x14], ebx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x5c]
lea ebx, [0x4e96fc]
mov ebp, eax
mov eax, dword [esp + 0x4c]
jmp 0x4789f1
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x64], ebp
mov dword [esp + 0x18], ebx
mov esi, dword [esp + 0x78]
mov edi, dword [esi]
mov dword [esp + 0x58], edi
mov ecx, edi
mov ebp, 1
shl ebp, cl
mov dword [esp + 0x44], ebp
sub edx, dword [esi + 8]
mov ebx, dword [esi + 4]
mov dword [esp + 0x30], ebx
mov ecx, ebx
mov esi, 1
shl esi, cl
lea eax, [edi - 0x20]
mov dword [esp + 0x40], eax
mov ecx, eax
mov ebp, 1
shl ebp, cl
neg eax
mov ecx, eax
mov edi, 1
shr edi, cl
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x40]
cmp edi, 0x20
sbb edi, edi
and ebp, edi
cmp ebx, 0x20
sbb ebx, ebx
and ebx, esi
dec ebx
and ebx, edx
mov dword [esp + 0x5c], ebx
mov edx, ebx
sar ebx, 0x1f
mov esi, edx
shr edx, cl
mov ecx, dword [esp + 0x58]
shl esi, cl
mov dword [esp + 0x34], esi
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x5c]
shl esi, cl
and esi, edi
mov ecx, dword [esp + 0x58]
shl ebx, cl
cmp eax, 0x20
sbb eax, eax
mov edi, dword [esp + 0x38]
and edi, eax
or ebp, edi
and edx, eax
cmp ecx, 0x20
sbb eax, eax
mov edi, dword [esp + 0x44]
and edi, eax
and ebx, eax
or edx, ebx
or esi, edx
mov edx, dword [esp + 0x34]
and edx, eax
mov eax, edi
add edi, 0xffffffff
mov ebx, ebp
adc ebp, 0xffffffff
mov ecx, eax
mov eax, dword [esp + 0x4c]
and ebp, eax
mov eax, dword [esp + 0x50]
and edi, eax
or ebp, esi
or edi, edx
movzx eax, byte [esp + 0x88]
test al, al
je 0x478b1c
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0x30]
cmp eax, 0x20
sbb edx, edx
mov esi, ecx
mov ecx, eax
shl ebx, cl
shl esi, cl
and ebx, edx
and esi, edx
lea ecx, [eax - 0x20]
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 0x50]
mov edx, eax
shl eax, cl
neg ecx
shr edx, cl
or edi, esi
mov esi, dword [esp + 0x4c]
cmp esi, 0x20
sbb esi, esi
and eax, esi
cmp ecx, 0x20
sbb esi, esi
and edx, esi
or edx, ebx
or eax, edx
or ebp, eax
mov eax, dword [esp + 0x78]
lea ecx, [0x5622a0]
cmp eax, ecx
jne 0x478b5b
mov dword [esp + 0x24], edi
movss xmm0, dword [esp + 0x24]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x8c], xmm0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x98], eax
add esp, 0x6c
ret
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebp
movsd xmm0, qword [esp + 0x1c]
movsd qword [esp + 0x8c], xmm0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x98], eax
add esp, 0x6c
ret
call sym.runtime.panicunsafestringlen
nop
call sym.runtime.morestack_noctxt
jmp sym.strconv.atofHex