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

Disassembly:
mov ecx, dword [0x674284]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4eca8d
add esp, 0xffffff80
mov eax, 0
mov dword [esp + 0x7c], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
lea ebx, [sym.text_tabwriter._Writer_.Write.deferwrap1]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x74], ebx
lea ebp, [esp + 0x98]
mov dword [esp + 0x78], ebp
lea ebp, [esp + 0x70]
mov dword [esp + 0x7c], ebp
mov byte [esp + 0x23], 1
mov dword [esp + 0x94], 0
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
xor eax, eax
jmp 0x4ec219
inc eax
cmp ebp, eax
jle 0x4ec93f
mov dword [esp + 0x3c], eax
movzx edi, byte [ebx + 0x3c]
movzx ecx, byte [esi + eax]
xchg edi, eax
test al, al
xchg edi, eax
jne 0x4ec80a
mov byte [esp + 0x22], cl
cmp cl, 0x26
ja 0x4ec53c
lea edi, [ecx - 9]
xchg edi, eax
cmp al, 3
xchg edi, eax
jbe 0x4ec259
cmp cl, 0x26
je 0x4ec545
jmp 0x4ec218
mov edx, dword [esp + 0x94]
cmp eax, edx
jb 0x4eca7a
sub eax, edx
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x90]
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
mov ebp, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x24]
lea edi, [eax + ecx]
add edx, esi
mov esi, dword [ebx + 0x20]
cmp ebp, edi
jae 0x4ec2d2
mov dword [esp + 0x60], edx
mov dword [esp + 0x4c], ecx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
lea ecx, [0x527f80]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x6c], esi
mov dword [esp + 0x48], edi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x84]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x4c]
mov dword [eax + 0x28], edx
mov ebx, dword [0x674338]
test ebx, ebx
jne 0x4ec315
mov ebx, dword [esp + 0x6c]
jmp 0x4ec326
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x6c]
mov dword [edi], ebx
mov ebp, dword [eax + 0x20]
mov dword [edi + 4], ebp
mov dword [eax + 0x20], ebx
mov ebp, dword [esp + 0x34]
add dword [eax + 0x30], ebp
mov ebp, dword [eax + 0x2c]
nop
cmp ecx, ebp
jb 0x4eca73
mov eax, dword [esp + 0x3c]
lea esi, [eax + 1]
mov dword [esp + 0x4c], esi
sub edx, ebp
sub ecx, ebp
mov edi, edx
neg edx
sar edx, 0x1f
and ebp, edx
lea edx, [ebx + ebp]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call sym.unicode_utf8.RuneCount
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
add dword [ecx + 0x34], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x94], eax
movzx eax, byte [esp + 0x22]
cmp al, 9
sete dl
mov byte [ecx + 0x38], dl
mov ebx, dword [ecx + 0x44]
lea ebp, [ebx - 1]
cmp ebx, ebp
jbe 0x4eca6a
mov byte [esp + 0x21], dl
lea ebx, [ebx + ebx*2]
mov ebp, dword [ecx + 0x40]
mov esi, dword [ebp + ebx*4 - 4]
mov edi, dword [ebp + ebx*4 - 8]
inc edi
lea eax, [ebp + ebx*4 - 0xc]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + ebx*4 - 0xc]
mov edx, dword [ecx + 0x30]
mov ecx, dword [ecx + 0x34]
cmp esi, edi
jae 0x4ec43d
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x68], ebp
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x5357e0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x68]
mov dword [ebp + ebx*4 - 4], eax
mov eax, dword [0x674338]
test eax, eax
je 0x4ec42d
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov esi, dword [ebp + ebx*4 - 0xc]
mov dword [edi + 4], esi
mov dword [ebp + ebx*4 - 0xc], ecx
mov edi, edx
mov eax, ecx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [ebp + ebx*4 - 8], edi
lea ebx, [edi + edi*2]
mov dword [eax + ebx*4 - 0xc], edx
mov dword [eax + ebx*4 - 8], ecx
lea ebx, [eax + ebx*4 - 4]
movzx ebp, byte [esp + 0x21]
xchg ebp, eax
mov byte [ebx], al
xchg ebp, eax
mov ebx, dword [esp + 0x84]
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
mov byte [ebx + 0x38], 0
mov ebp, dword [esp + 0x64]
mov ebp, dword [ebp + 4]
mov dword [esp + 0x40], ebp
movzx esi, byte [esp + 0x22]
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x4ec494
xchg esi, eax
cmp al, 0xc
xchg esi, eax
jne 0x4ec525
mov dword [esp], ebx
xchg esi, eax
cmp al, 0xc
xchg esi, eax
sete al
mov byte [esp + 4], al
call sym.text_tabwriter._Writer_.addLine
movzx eax, byte [esp + 0x22]
cmp al, 0xc
je 0x4ec4c4
mov ebx, dword [esp + 0x40]
cmp ebx, 1
je 0x4ec4c4
mov ebx, dword [esp + 0x84]
jmp 0x4ec525
mov eax, dword [esp + 0x84]
mov dword [esp], eax
call sym.text_tabwriter._Writer_.flushNoDefers
movzx eax, byte [esp + 0x22]
cmp al, 0xc
jne 0x4ec51e
mov ebx, dword [esp + 0x84]
mov ebp, dword [ebx + 0x1c]
test ebp, 0x20
je 0x4ec525
mov eax, dword [0x631798]
mov ecx, dword [0x63179c]
mov edx, dword [0x6317a0]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call sym.text_tabwriter._Writer_.write0
mov ebx, dword [esp + 0x84]
jmp 0x4ec525
mov ebx, dword [esp + 0x84]
mov eax, dword [esp + 0x3c]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
jmp 0x4ec218
cmp cl, 0x3c
jne 0x4ec6b0
mov edi, dword [ebx + 0x1c]
test edi, 1
je 0x4ec218
mov edx, dword [esp + 0x94]
cmp eax, edx
jb 0x4eca61
sub eax, edx
mov dword [esp + 0x2c], eax
mov ebp, dword [esp + 0x90]
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
mov ebp, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x24]
lea edi, [eax + ecx]
add edx, esi
mov esi, dword [ebx + 0x20]
cmp ebp, edi
jae 0x4ec5cd
mov dword [esp + 0x58], edx
mov dword [esp + 0x4c], ecx
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
lea ecx, [0x527f80]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], edi
mov dword [esp + 0x6c], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x84]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x4c]
mov dword [eax + 0x28], edx
mov ebx, dword [0x674338]
test ebx, ebx
jne 0x4ec610
mov ebx, dword [esp + 0x6c]
jmp 0x4ec621
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x6c]
mov dword [edi], ebx
mov ebp, dword [eax + 0x20]
mov dword [edi + 4], ebp
mov dword [eax + 0x20], ebx
mov ebp, dword [esp + 0x2c]
add dword [eax + 0x30], ebp
mov ebp, dword [eax + 0x2c]
nop
cmp ecx, ebp
jb 0x4eca5a
sub edx, ebp
sub ecx, ebp
mov eax, edx
neg edx
sar edx, 0x1f
and ebp, edx
lea edx, [ebx + ebp]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.unicode_utf8.RuneCount
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
add dword [ecx + 0x34], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x94], eax
nop
movzx edx, byte [esp + 0x22]
cmp dl, 0x26
jne 0x4ec687
mov byte [ecx + 0x3c], 0x3b
jmp 0x4ec69b
cmp dl, 0x3c
jne 0x4ec692
mov byte [ecx + 0x3c], 0x3e
jmp 0x4ec69b
cmp dl, 0xff
jne 0x4ec69b
mov byte [ecx + 0x3c], 0xff
mov ebx, ecx
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
jmp 0x4ec218
cmp cl, 0xff
jne 0x4ec218
mov edx, dword [esp + 0x94]
cmp eax, edx
jb 0x4eca51
sub eax, edx
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x90]
sub edi, edx
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edx, edi
mov edi, dword [ebx + 0x28]
mov ebp, dword [ebx + 0x24]
lea ecx, [eax + ebp]
add edx, esi
mov esi, dword [ebx + 0x20]
cmp edi, ecx
jae 0x4ec732
mov dword [esp + 0x5c], edx
mov dword [esp + 0x4c], ebp
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
lea ecx, [0x527f80]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x48], edi
lea ebx, [esi + ebp]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x84]
mov dword [eax + 0x24], ecx
mov edx, dword [esp + 0x48]
mov dword [eax + 0x28], edx
mov ebx, dword [0x674338]
test ebx, ebx
jne 0x4ec776
mov ebx, dword [esp + 0x6c]
jmp 0x4ec787
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x6c]
mov dword [edi], ebx
mov ebp, dword [eax + 0x20]
mov dword [edi + 4], ebp
mov dword [eax + 0x20], ebx
mov ebp, dword [esp + 0x30]
add dword [eax + 0x30], ebp
mov ebp, dword [eax + 0x2c]
nop
cmp ecx, ebp
jb 0x4eca4a
sub edx, ebp
sub ecx, ebp
mov eax, edx
neg edx
sar edx, 0x1f
and ebp, edx
lea edx, [ebx + ebp]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.unicode_utf8.RuneCount
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x84]
add dword [ecx + 0x34], eax
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x94], eax
mov edx, dword [ecx + 0x1c]
test edx, 2
je 0x4ec7f1
lea ebx, [eax + 1]
mov dword [esp + 0x94], ebx
mov byte [ecx + 0x3c], 0xff
mov ebx, ecx
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
jmp 0x4ec218
xchg edi, eax
cmp al, cl
xchg edi, eax
jne 0x4ec218
lea edi, [eax + 1]
cmp cl, 0xff
jne 0x4ec82b
mov ecx, dword [ebx + 0x1c]
test ecx, 2
je 0x4ec82b
mov ecx, eax
jmp 0x4ec82f
mov ecx, eax
mov eax, edi
mov edx, dword [esp + 0x90]
cmp edx, eax
jb 0x4eca43
mov ebp, dword [esp + 0x94]
cmp eax, ebp
jb 0x4eca3a
mov dword [esp + 0x38], edi
sub eax, ebp
mov dword [esp + 0x28], eax
sub edx, ebp
neg edx
sar edx, 0x1f
and ebp, edx
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x24]
lea edi, [eax + ecx]
add ebp, esi
mov esi, dword [ebx + 0x20]
cmp edx, edi
jae 0x4ec8b0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x54], ebp
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x527f80]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x54]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], edi
mov dword [esp + 0x6c], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 0x28], eax
mov eax, dword [0x674338]
test eax, eax
jne 0x4ec8f3
mov eax, dword [esp + 0x6c]
jmp 0x4ec904
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
mov edx, dword [ecx + 0x20]
mov dword [edi + 4], edx
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x28]
add dword [ecx + 0x30], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x94], eax
mov dword [esp], ecx
call sym.text_tabwriter._Writer_.endEscape
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
jmp 0x4ec218
mov eax, dword [esp + 0x94]
cmp ebp, eax
jb 0x4eca33
sub ebp, eax
mov dword [esp + 0x24], ebp
mov edx, dword [esp + 0x90]
sub edx, eax
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [ebx + 0x28]
mov edi, dword [ebx + 0x24]
lea ecx, [ebp + edi]
add eax, esi
mov esi, dword [ebx + 0x20]
cmp edx, ecx
jae 0x4ec9b5
mov dword [esp + 0x4c], edi
mov dword [esp + 0x50], eax
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
lea eax, [0x527f80]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x48], ecx
lea ebx, [esi + edi]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x84]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x4c]
mov dword [ecx + 0x28], eax
mov eax, dword [0x674338]
test eax, eax
jne 0x4ec9f9
mov eax, dword [esp + 0x6c]
jmp 0x4eca0a
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x6c]
mov dword [edi], eax
mov ebx, dword [ecx + 0x20]
mov dword [edi + 4], ebx
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x24]
add dword [ecx + 0x30], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x94], eax
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0x7c]
mov eax, dword [edx]
call eax
sub esp, 0xffffff80
ret
mov ecx, ebp
call sym.runtime.panicSliceB
mov ecx, eax
mov eax, ebp
call sym.runtime.panicSliceB
mov ecx, eax
call sym.runtime.panicSliceAcap
mov eax, ebp
call sym.runtime.panicSliceB
mov ecx, eax
mov eax, edx
call sym.runtime.panicSliceB
mov eax, ebp
call sym.runtime.panicSliceB
mov ecx, eax
mov eax, edx
call sym.runtime.panicSliceB
mov eax, ebp
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicSliceB
mov ecx, eax
mov eax, edx
call sym.runtime.panicSliceB
nop
call sym.runtime.deferreturn
sub esp, 0xffffff80
ret
call sym.runtime.morestack_noctxt
jmp sym.text_tabwriter._Writer_.Write