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

Disassembly:
mov ecx, dword [0x63aa18]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x40]
cmp eax, dword [ecx + 8]
jbe 0x4ca0e8
sub esp, 0xc0
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0xc8]
mov ebp, dword [esp + 0xc4]
mov eax, ebx
mov ecx, ebp
mov esi, edx
jmp 0x4c97b6
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc4]
mov ebp, ebx
mov edx, edi
mov ebx, esi
mov esi, dword [esp + 0xcc]
mov edi, dword [0x5f3764]
cmp edi, 1
jb 0x4ca0db
dec edi
mov esi, dword [str._n_____BEGIN]
mov eax, dword [0x5f3768]
dec eax
neg eax
sar eax, 0x1f
and eax, 1
add esi, eax
cmp ebx, edi
jge 0x4c97e5
xor eax, eax
jmp 0x4c981f
mov dword [esp + 0x94], ebp
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ebx
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], edi
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x94]
test al, al
je 0x4c9849
mov esi, dword [0x5f3764]
lea eax, [esi - 1]
cmp ebx, eax
jb 0x4ca0d4
sub edx, esi
sub ebx, esi
inc edx
mov esi, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, ebp
lea edx, [ebx + 1]
jmp 0x4c9892
mov eax, dword [str._n_____BEGIN]
mov ecx, dword [0x5f3764]
mov esi, dword [0x5f3768]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
call sym.bytes.Cut
movzx eax, byte [esp + 0x30]
test al, al
je 0x4c9dae
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov esi, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call sym.encoding_pem.getLine
mov ecx, dword [esp + 0x10]
mov eax, dword [0x5f3784]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x8c], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xbc], ebx
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x84], esi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x80], edi
cmp eax, ecx
jg 0x4c9951
mov dword [esp + 0x40], ecx
sub ecx, eax
mov ebx, dword [esp + 0x40]
cmp ebx, ecx
jb 0x4ca0cb
mov dword [esp + 0x44], ebp
sub ebx, ecx
sub ebp, ecx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ecx, ebp
lea ebp, [edx + ecx]
cmp eax, ebx
je 0x4c9910
xor eax, eax
jmp 0x4c9940
mov eax, dword [0x5f3780]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x84]
mov edi, dword [esp + 0x80]
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0xbc]
mov ebp, dword [esp + 0x44]
jmp 0x4c9953
xor eax, eax
test al, al
je 0x4c979b
mov eax, dword [0x5f3784]
sub ecx, eax
cmp ebp, ecx
jb 0x4ca0c4
mov dword [esp + 0x40], ecx
call sym.runtime.makemap_small
mov eax, dword [esp]
mov dword [esp + 0xb8], eax
lea ecx, [0x50b0e0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [0x63aae8]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4c99a3
mov eax, dword [esp + 0xb8]
jmp 0x4c99b1
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0xb8]
mov dword [edi], eax
mov dword [esp + 0xb4], ecx
mov dword [ecx + 8], eax
mov dword [esp], 0
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov edx, dword [esp + 0x40]
mov dword [esp + 8], edx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xb4]
mov dword [edx + 4], eax
mov eax, dword [0x63aae8]
test eax, eax
je 0x4c9a02
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [edx]
mov dword [edi + 4], eax
mov dword [edx], ecx
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x80]
mov ebx, dword [esp + 0xbc]
jmp 0x4c9e02
mov edx, dword [esp + 0xb4]
mov ebx, dword [edx + 8]
test ebx, ebx
je 0x4c9a30
mov ebx, dword [ebx]
jmp 0x4c9a32
xor ebx, ebx
test ebx, ebx
jne 0x4c9aa3
mov ebx, dword [0x5f3774]
cmp ebx, 1
jb 0x4ca0b8
mov ebp, dword [str._n_____END]
mov esi, dword [0x5f3778]
dec ebx
dec esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ebp, esi
mov ecx, dword [esp + 0x48]
cmp ecx, ebx
jge 0x4c9a6d
xor eax, eax
jmp 0x4c9a94
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xb4]
test al, al
je 0x4c9aa7
mov ebx, dword [0x5f3774]
dec ebx
xor eax, eax
jmp 0x4c9af8
mov ecx, dword [esp + 0x48]
mov eax, dword [str._n_____END]
mov edx, dword [0x5f3774]
mov ebx, dword [0x5f3778]
mov ebp, dword [esp + 0x90]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov esi, dword [esp + 0x50]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call sym.bytes.Index
mov eax, dword [esp + 0x18]
mov ecx, dword [0x5f3774]
lea ebx, [eax + ecx]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xb4]
test eax, eax
jge 0x4c9b0e
mov edi, dword [esp + 0x50]
mov esi, ecx
mov ebx, dword [esp + 0x90]
jmp 0x4c979b
cmp ebx, ecx
ja 0x4ca0b1
mov ebp, ecx
sub ebp, ebx
mov esi, dword [esp + 0x50]
sub esi, ebx
mov dword [esp + 0x70], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and ebx, esi
mov esi, dword [0x5f3784]
mov edx, dword [esp + 0x40]
add esi, edx
mov edi, dword [esp + 0x90]
add ebx, edi
cmp ebp, esi
jge 0x4c9b5a
mov edi, dword [esp + 0x50]
mov esi, ecx
mov ebx, dword [esp + 0x90]
jmp 0x4c979b
jb 0x4ca0a8
mov dword [esp + 0x74], eax
mov dword [esp + 0x6c], esi
mov edi, dword [esp + 0x70]
sub edi, esi
mov dword [esp + 0x5c], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, esi
sub ebp, esi
mov dword [esp + 0x58], ebp
add edi, ebx
mov dword [esp + 0x98], edi
cmp edx, esi
jle 0x4c9b94
xor edx, edx
jmp 0x4c9bd7
mov dword [esp + 0xa4], ebx
mov dword [esp], ebx
mov eax, dword [esp + 0x8c]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x98]
mov edx, eax
mov eax, dword [esp + 0x74]
test dl, dl
je 0x4c9c49
mov edx, dword [0x5f3784]
cmp edx, esi
jg 0x4c9c42
sub esi, edx
mov ebp, dword [esp + 0x6c]
cmp esi, ebp
ja 0x4ca09f
sub ebp, esi
mov edi, dword [esp + 0x70]
sub edi, esi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and esi, edi
add ebx, esi
cmp edx, ebp
je 0x4c9c10
xor edx, edx
jmp 0x4c9c35
mov eax, dword [0x5f3780]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, eax
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x58]
mov edi, dword [esp + 0x98]
jmp 0x4c9c44
xor edx, edx
xor edx, 1
jmp 0x4c9c4e
mov edx, 1
test dl, dl
je 0x4c9c64
mov edi, dword [esp + 0x50]
mov esi, ecx
mov ebx, dword [esp + 0x90]
jmp 0x4c979b
mov dword [esp], edi
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
call sym.encoding_pem.getLine
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c9c94
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x90]
jmp 0x4c979b
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x50]
cmp ecx, edx
ja 0x4ca09a
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.encoding_pem.removeSpacesAndTabs
mov eax, dword [0x5fb9dc]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xa8], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x7c], ebx
cmp dword [eax + 0x140], 0xffffffff
jne 0x4c9d07
mov eax, edx
shr edx, 2
lea edx, [edx + edx*2]
and eax, 3
lea eax, [eax + eax*2]
mov esi, eax
shl eax, 1
sar eax, 0x1f
shr eax, 0x1d
lea eax, [eax + esi*2]
sar eax, 3
add eax, edx
jmp 0x4c9d0d
shr edx, 2
lea eax, [edx + edx*2]
mov dword [esp + 0x34], eax
lea ecx, [0x503b00]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0xb4]
mov dword [edx + 0x10], ecx
mov dword [edx + 0x14], ecx
mov ebx, dword [0x63aae8]
test ebx, ebx
je 0x4c9d53
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [edx + 0xc]
mov dword [edi + 4], ebx
mov dword [edx + 0xc], eax
mov eax, dword [0x5fb9dc]
mov ebx, dword [edx + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x18], eax
call sym.encoding_base64._Encoding_.Decode
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4c9fbb
mov edi, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x90]
jmp 0x4c979b
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xdc], eax
add esp, 0xc0
ret
mov dword [eax], ecx
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x9c]
test eax, eax
je 0x4ca054
mov dword [esp + 0x50], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x90], ebx
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.encoding_pem.getLine
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [0x5f3790]
mov ebp, dword [0x5f3794]
mov esi, dword [0x5f3798]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x9c], edi
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x64], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], esi
call sym.bytes.Cut
movzx eax, byte [esp + 0x30]
test al, al
je 0x4c9a1e
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x38], ebp
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x3c], esi
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.bytes.TrimSpace
mov eax, dword [esp + 0xc]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], ecx
mov edx, dword [esp + 0x88]
mov dword [esp], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
call sym.bytes.TrimSpace
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xb4]
mov ecx, dword [eax + 8]
mov dword [esp + 0xb0], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x84], edx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xac], ebx
mov dword [esp], 0
mov ebp, dword [esp + 0xa0]
mov dword [esp + 4], ebp
mov ebp, dword [esp + 0x68]
mov dword [esp + 8], ebp
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
lea edx, [0x504ae0]
mov dword [esp], edx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x84]
mov dword [eax + 4], ecx
mov ecx, dword [0x63aae8]
test ecx, ecx
jne 0x4c9fa3
mov ecx, dword [esp + 0xac]
jmp 0x4c9dea
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0xac]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
jmp 0x4c9dea
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xb4]
mov edx, dword [ebx + 0x14]
cmp edx, ecx
jb 0x4ca095
mov dword [ebx + 0x10], ecx
mov edx, dword [0x5f3774]
mov ebp, dword [esp + 0x74]
lea eax, [ebp + edx - 1]
add edx, ebp
mov ecx, dword [esp + 0x48]
cmp ecx, eax
jb 0x4ca090
mov ebx, dword [esp + 0x50]
sub ebx, edx
sub ecx, edx
lea edx, [ebx + 1]
mov ebx, edx
neg edx
inc ecx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x90]
add eax, edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call sym.encoding_pem.getLine
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0xd0], ebx
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xdc], edx
add esp, 0xc0
ret
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0xdc], eax
add esp, 0xc0
ret
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceAcap
mov eax, esi
mov ecx, ebp
call sym.runtime.panicSliceB
mov eax, esi
mov ecx, ebp
call sym.runtime.panicSliceB
mov eax, ebx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
mov edx, ebp
call sym.runtime.panicSliceAcap
mov eax, ecx
mov ecx, ebx
call sym.runtime.panicSliceB
mov ecx, ebx
call sym.runtime.panicSliceB
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.encoding_pem.Decode