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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x4aa481
sub esp, 0x94
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x51]
cmp bl, 0
je 0x4a9a0a
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x4c]
cmp ebp, 0
jne 0x4a9a0a
cmp dword [esp + 0xa0], 0
jne 0x4a9a0a
cmp dword [esp + 0x9c], 0
jne 0x4a9a0a
add esp, 0x94
ret
movzx ebx, byte [esp + 0xac]
mov ebp, 1
xchg ebp, eax
cmp bl, al
xchg ebp, eax
jne 0x4aa477
cmp dword [esp + 0xa0], 0
jg 0x4aa477
jl 0x4a9a3f
cmp dword [esp + 0x9c], 0
jae 0x4aa477
mov byte [esp + 0x23], 1
cmp byte [esp + 0x23], 0
je 0x4a9a7d
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xa0], eax
neg dword [esp + 0x9c]
adc dword [esp + 0xa0], 0
neg dword [esp + 0xa0]
mov ebx, dword [esp + 0x98]
cmp ebx, 0
je 0x4aa470
mov dword [esp + 0x5c], 0x41
mov dword [esp + 0x60], 0x41
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x50]
cmp bl, 0
jne 0x4aa39b
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x51]
cmp bl, 0
jne 0x4aa39b
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x53]
cmp bl, 0
jne 0x4aa39b
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x55]
cmp bl, 0
jne 0x4aa39b
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x51]
cmp bl, 0
je 0x4aa305
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x4c]
mov dword [esp + 0x2c], ebp
xor eax, eax
mov ebx, dword [esp + 0x98]
mov byte [ebx + 0x58], al
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xa4]
mov edx, dword [esp + 0xa8]
cmp edx, 0
ja 0x4aa191
jb 0x4a9b5f
cmp ebx, 8
ja 0x4aa191
cmp edx, 0
jne 0x4aa0df
cmp ebx, 2
jne 0x4aa0df
cmp esi, 0
jb 0x4a9bbf
jbe 0x4aa0d1
mov ebx, dword [esp + 0x34]
dec ebx
mov dword [esp + 0x34], ebx
mov ebp, ecx
and ebp, 1
xor ebx, ebx
mov eax, 0x30
xor edx, edx
add eax, ebp
adc edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x4aa0ca
mov ebp, dword [esp + 0x58]
add ebp, ebx
mov byte [ebp], al
mov edx, esi
shrd ecx, esi, 1
shr edx, 1
mov esi, edx
cmp esi, 0
jae 0x4a9b76
mov edx, dword [esp + 0x34]
dec edx
cmp esi, 0
je 0x4a9bd0
call dbg.runtime.panicindex
ud2
mov ebp, dword [esp + 0xb4]
cmp ecx, ebp
jae 0x4a9bc9
mov ebp, dword [esp + 0xb0]
add ebp, ecx
movzx ebx, byte [ebp]
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa0c3
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], bl
mov dword [esp + 0x34], edx
cmp edx, 0
jle 0x4a9c38
mov eax, dword [esp + 0x5c]
sub eax, edx
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
jge 0x4a9c38
dec edx
mov ecx, 0x30
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa0bc
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
mov dword [esp + 0x34], edx
cmp edx, 0
jg 0x4a9c06
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x54]
cmp bl, 0
je 0x4a9ca2
mov ebx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xa8]
cmp ecx, 0
jne 0x4aa040
cmp ebx, 8
jne 0x4aa040
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa039
mov ebp, dword [esp + 0x58]
add ebp, edx
movzx ebx, byte [ebp]
cmp bl, 0x30
je 0x4a9ca2
dec edx
mov ecx, 0x30
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa032
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x56]
cmp bl, 0
je 0x4a9cf0
mov eax, edx
dec eax
mov edx, 0x2b
mov ebp, dword [esp + 0x5c]
cmp eax, ebp
jae 0x4aa02b
mov ebp, dword [esp + 0x58]
add ebp, eax
mov byte [ebp], dl
mov edx, eax
dec edx
mov ecx, 0x55
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa024
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
cmp byte [esp + 0x23], 0
je 0x4a9fb2
dec edx
mov ecx, 0x2d
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4a9fab
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x56]
cmp bl, 0
je 0x4a9fa9
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x57]
cmp bl, 0
je 0x4a9fa9
cmp dword [esp + 0xa0], 0
jl 0x4a9fa9
jg 0x4a9d60
cmp dword [esp + 0x9c], 0
jb 0x4a9fa9
cmp dword [esp + 0xa0], 0
jg 0x4a9fa9
jl 0x4a9d81
cmp dword [esp + 0x9c], 0x10ffff
ja 0x4a9fa9
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call dbg.strconv.IsPrint
mov edx, dword [esp + 0x34]
movzx ebx, byte [esp + 4]
cmp bl, 0
je 0x4a9fa9
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call dbg.unicode/utf8.RuneLen
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 4]
mov dword [esp + 0x28], ecx
add ecx, 2
inc ecx
mov edi, eax
sub eax, ecx
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
cmp eax, ecx
ja 0x4a9fa2
mov ebp, ecx
sub ebp, eax
sub edx, eax
mov ecx, dword [esp + 0x58]
cmp edx, 0
je 0x4a9dea
add ecx, eax
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x90], edx
mov esi, ecx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
cmp edi, ecx
ja 0x4a9f9b
mov ebp, ecx
sub ebp, edi
sub edx, edi
mov ecx, dword [esp + 0x58]
cmp edx, 0
je 0x4a9e1b
add ecx, edi
mov dword [esp + 0x80], ebp
mov edi, edx
mov dword [esp + 0x88], esi
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ecx
mov ebp, ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x84], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x74], eax
mov dword [esp + 0x68], edx
cmp edx, eax
jge 0x4a9e63
mov eax, edx
mov dword [esp + 0x70], esi
mov dword [esp], esi
mov dword [esp + 0x64], ebp
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call dbg.runtime.memmove
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x58]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [esp + 0x34]
sub ebx, edx
mov dword [esp + 0x34], ebx
mov eax, ecx
sub eax, edx
mov esi, 0x20
cmp eax, ecx
jae 0x4a9f94
mov ebp, edi
add ebp, eax
xchg esi, eax
mov byte [ebp], al
xchg esi, eax
inc eax
mov esi, 0x27
cmp eax, ecx
jae 0x4a9f8d
mov ebp, edi
add ebp, eax
xchg esi, eax
mov byte [ebp], al
xchg esi, eax
inc eax
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x60]
cmp eax, ecx
ja 0x4a9f86
mov ebp, ecx
sub ebp, eax
sub edx, eax
mov ecx, edi
cmp edx, 0
je 0x4a9ee2
add ecx, eax
mov dword [esp + 0x64], ecx
mov dword [esp], ecx
mov dword [esp + 0x68], ebp
mov dword [esp + 4], ebp
mov dword [esp + 0x6c], edx
mov dword [esp + 8], edx
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xc], eax
call dbg.unicode/utf8.EncodeRune
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
add ebx, dword [esp + 0x28]
mov ecx, 0x27
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x4a9f7f
mov ebp, dword [esp + 0x58]
add ebp, ebx
mov byte [ebp], cl
mov eax, edx
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
cmp eax, ecx
ja 0x4a9f78
mov ebp, ecx
sub ebp, eax
sub edx, eax
mov ecx, dword [esp + 0x58]
cmp edx, 0
je 0x4a9f4a
add ecx, eax
mov ebx, dword [esp + 0x98]
mov dword [esp], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 4], ecx
mov dword [esp + 0x74], ebp
mov dword [esp + 8], ebp
mov dword [esp + 0x78], edx
mov dword [esp + 0xc], edx
call dbg.fmt.(*fmt).pad
add esp, 0x94
ret
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
jmp 0x4a9f2b
call dbg.runtime.panicindex
ud2
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x53]
cmp bl, 0
je 0x4a9fe9
dec edx
mov ecx, 0x2b
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4a9fe2
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
jmp 0x4a9d1a
call dbg.runtime.panicindex
ud2
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x55]
cmp bl, 0
je 0x4a9d1a
dec edx
mov ecx, 0x20
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa01d
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
jmp 0x4a9d1a
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
cmp ecx, 0
jne 0x4a9ca2
cmp ebx, 0x10
jne 0x4a9ca2
mov eax, edx
dec eax
cmp dword [esp + 0xb4], 0xa
jbe 0x4aa0b5
mov edx, dword [esp + 0xb0]
add edx, 0xa
movzx ebp, byte [edx]
mov edx, ebp
add edx, 0x78
sub edx, 0x61
mov ebp, dword [esp + 0x5c]
cmp eax, ebp
jae 0x4aa0ae
mov ebp, dword [esp + 0x58]
add ebp, eax
mov byte [ebp], dl
mov edx, eax
dec edx
mov ecx, 0x30
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x5c]
cmp edx, ebp
jae 0x4aa0a7
mov ebp, dword [esp + 0x58]
add ebp, edx
mov byte [ebp], cl
jmp 0x4a9ca2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
cmp ecx, 2
jb 0x4a9bbf
jmp 0x4a9b7c
cmp edx, 0
jne 0x4aa14c
cmp ebx, 8
jne 0x4aa14c
cmp esi, 0
jb 0x4a9bbf
jbe 0x4aa13a
mov ebx, dword [esp + 0x34]
dec ebx
mov dword [esp + 0x34], ebx
mov ebp, ecx
and ebp, 7
xor ebx, ebx
mov eax, 0x30
xor edx, edx
add eax, ebp
adc edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x4aa145
mov ebp, dword [esp + 0x58]
add ebp, ebx
mov byte [ebp], al
mov edx, esi
shrd ecx, esi, 3
shr edx, 3
mov esi, edx
cmp esi, 0
jb 0x4a9bbf
ja 0x4aa0f4
cmp ecx, 8
jb 0x4a9bbf
jmp 0x4aa0f4
call dbg.runtime.panicindex
ud2
mov ebx, 0x569a20
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 0x1f
mov dword [esp], 0x50b9c0
lea ebx, [esp + 0x50]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
call dbg.runtime.convT2E
lea ebx, [esp + 0xc]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call dbg.runtime.gopanic
ud2
cmp edx, 0
jne 0x4aa275
cmp ebx, 0xa
jne 0x4aa275
cmp esi, 0
jb 0x4a9bbf
jbe 0x4aa24e
mov ebx, dword [esp + 0x34]
dec ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ecx
mov dword [esp], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 4], esi
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call dbg.runtime.uint64div
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], eax
mov eax, 0x30
xor edx, edx
add eax, dword [esp + 0x38]
adc edx, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
mov eax, ecx
mov esi, dword [esp + 0x44]
mov edi, 0xa
xor ebp, ebp
mov edx, esi
or esi, ebp
jne 0x4aa263
mul edi
mov ebp, eax
mov ebx, edx
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
sub eax, ebp
sbb edx, ebx
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x5c]
cmp ebp, esi
jae 0x4aa25c
mov esi, dword [esp + 0x58]
add esi, ebp
mov byte [esi], al
mov esi, dword [esp + 0x44]
cmp esi, 0
jb 0x4a9bbf
ja 0x4aa1b2
cmp ecx, 0xa
jb 0x4a9bbf
jmp 0x4aa1b2
call dbg.runtime.panicindex
ud2
imul edx, edi
mov esi, ecx
imul esi, ebp
add esi, edx
mov edx, edi
mul edx
add edx, esi
jmp 0x4aa217
cmp edx, 0
jne 0x4aa14c
cmp ebx, 0x10
jne 0x4aa14c
cmp esi, 0
jb 0x4a9bbf
jbe 0x4aa2f3
mov ebx, dword [esp + 0x34]
dec ebx
mov dword [esp + 0x34], ebx
mov eax, ecx
and eax, 0xf
xor edx, edx
cmp edx, 0
je 0x4aa2ae
call dbg.runtime.panicindex
ud2
mov ebp, dword [esp + 0xb4]
cmp eax, ebp
jae 0x4aa2a7
mov ebp, dword [esp + 0xb0]
add ebp, eax
movzx ebx, byte [ebp]
mov edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x5c]
cmp ebx, ebp
jae 0x4aa2fe
mov ebp, dword [esp + 0x58]
add ebp, ebx
mov byte [ebp], dl
mov edx, esi
shrd ecx, esi, 4
shr edx, 4
mov esi, edx
cmp esi, 0
jb 0x4a9bbf
ja 0x4aa292
cmp ecx, 0x10
jb 0x4a9bbf
jmp 0x4aa292
call dbg.runtime.panicindex
ud2
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x58]
cmp bl, 0
je 0x4a9b27
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x50]
cmp bl, 0
je 0x4a9b27
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x52]
cmp bl, 0
jne 0x4a9b27
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x48]
cmp ebp, 0
jle 0x4a9b27
mov ebx, dword [esp + 0x98]
mov ebp, dword [ebx + 0x48]
mov dword [esp + 0x2c], ebp
cmp byte [esp + 0x23], 0
jne 0x4aa38d
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x53]
cmp bl, 0
jne 0x4aa38d
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x55]
cmp bl, 0
je 0x4a9b27
mov ebx, dword [esp + 0x2c]
dec ebx
mov dword [esp + 0x2c], ebx
jmp 0x4a9b27
mov ebx, dword [esp + 0x98]
mov ecx, dword [ebx + 0x48]
mov ebx, dword [esp + 0x98]
mov ebx, dword [ebx + 0x4c]
add ecx, ebx
cmp dword [esp + 0xa8], 0
jne 0x4aa3d8
cmp dword [esp + 0xa4], 0x10
jne 0x4aa3d8
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x54]
cmp bl, 0
je 0x4aa3d8
add ecx, 2
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x56]
cmp bl, 0
je 0x4aa3fe
add ecx, 2
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x57]
cmp bl, 0
je 0x4aa3fe
add ecx, 7
cmp byte [esp + 0x23], 0
jne 0x4aa46d
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x53]
cmp bl, 0
jne 0x4aa46d
mov ebx, dword [esp + 0x98]
movzx ebx, byte [ebx + 0x55]
cmp bl, 0
jne 0x4aa46d
cmp ecx, 0x41
jle 0x4a9af1
mov dword [esp], 0x506a80
mov eax, ecx
cdq
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, ecx
cdq
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call dbg.runtime.makeslice
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x60], ebx
jmp 0x4a9af1
inc ecx
jmp 0x4aa425
mov dword [ebx], eax
jmp 0x4a9a8d
mov byte [esp + 0x23], 0
jmp 0x4a9a44
call dbg.runtime.morestack_noctxt
jmp dbg.fmt.(*fmt).integer