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

Disassembly:
mov ecx, dword [0x7c4f4c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x54]
cmp eax, dword [ecx + 8]
jbe 0x5c4f34
sub esp, 0xd4
movzx eax, byte [esp + 0x100]
mov ecx, dword [esp + 0xe0]
mov edx, ecx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x5c46fc
mov byte [esi + ebp - 1], al
dec ecx
test ecx, ecx
jle 0x5c474c
inc esi
cmp ebx, esi
jae 0x5c46f7
mov dword [esp + 0x2c], ecx
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5f3fe0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
movzx eax, byte [esp + 0x100]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xe0]
jmp 0x5c46f7
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], esi
mov dword [esp + 0x94], ebp
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov eax, dword [esp + 0xe8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call sym.software.sslmate.com_src_go_pkcs12.fillWithRepeats
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x80], edx
mov ebx, dword [esp + 0xf0]
mov dword [esp], ebx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xf8]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0xc], ebx
call sym.software.sslmate.com_src_go_pkcs12.fillWithRepeats
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x38]
cmp ebp, edx
jb 0x5c47ef
mov esi, dword [esp + 0x80]
jmp 0x5c4840
mov dword [esp + 0x3c], eax
mov dword [esp + 0x84], ebx
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
lea ecx, [0x5f3fe0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x84]
mov esi, edx
mov edx, eax
mov ebp, ecx
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], edx
mov dword [esp + 0x90], esi
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x104]
lea edx, [ecx + eax - 1]
test eax, eax
je 0x5c4f2e
lea ecx, [0x5f3fe0]
mov dword [esp], ecx
mov ebx, eax
mov eax, edx
cmp ebx, 0xffffffff
je 0x5c4892
cdq
idiv ebx
jmp 0x5c4894
neg eax
mov dword [esp + 0x30], eax
imul eax, ebx
mov dword [esp + 0x60], eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xd0], ecx
xor eax, eax
xor edx, edx
xor ebx, ebx
jmp 0x5c48c8
inc esi
mov ecx, edi
mov edx, ebp
mov ebx, eax
mov eax, esi
mov ebp, dword [esp + 0x30]
cmp eax, ebp
jge 0x5c4b63
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], edx
mov dword [esp + 0x8c], ebx
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
lea edx, [edi + esi]
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jb 0x5c490a
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0xcc], eax
jmp 0x5c494a
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
lea ecx, [0x5f3fe0]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x50]
mov dword [esp + 0xcc], ebp
mov dword [esp + 0x78], ebx
mov dword [esp + 0x74], edx
mov eax, dword [esp + 0xcc]
lea ecx, [eax + edi]
mov dword [esp], ecx
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
call sym.runtime.memmove
mov edx, dword [esp + 0xd8]
mov eax, dword [edx]
mov ecx, dword [esp + 0xcc]
mov dword [esp], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 8], ecx
call eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0xfc]
jmp 0x5c4bc4
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0xdc]
mov esi, ebx
imul ebx, ebp
mov edx, dword [esp + 0x60]
cmp ebx, edx
ja 0x5c4f25
mov edi, dword [esp + 0x30]
sub edi, esi
imul edi, ebp
mov dword [esp + 0x78], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and ebx, edi
mov edi, dword [esp + 0xd0]
add ebx, edi
mov ebp, dword [esp + 0x78]
cmp ecx, ebp
jge 0x5c49f9
mov ebp, ecx
jmp 0x5c49ff
mov ebp, ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x78], ebp
mov dword [esp + 0x9c], eax
cmp eax, ebx
je 0x5c4a38
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0xd0]
mov ebx, dword [esp + 0x30]
lea ecx, [ebx - 1]
cmp esi, ecx
jl 0x5c4a53
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x8c]
jmp 0x5c48bf
xor ecx, ecx
xor ecx, ecx
mov dword [esp + 0x5c], ecx
xor ecx, ecx
mov dword [esp + 0x98], ecx
xor ecx, ecx
jmp 0x5c4c11
mov eax, dword [esp + 0x5c]
cmp edi, eax
ja 0x5c4f1c
mov byte [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 0x98]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
call sym.math_big.nat.setBytes
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb4], eax
mov byte [esp + 0xb0], 0
mov byte [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x8c]
xor edi, edi
jmp 0x5c4ca2
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0xd0]
mov eax, esi
mov esi, dword [esp + 0x28]
jmp 0x5c48bf
mov eax, dword [esp + 0x104]
mov edx, dword [esp + 0x60]
cmp eax, edx
ja 0x5c4b8e
mov dword [esp + 0x108], ecx
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], edx
add esp, 0xd4
ret
mov ecx, eax
call sym.runtime.panicSliceAcap
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0xd8]
mov ebp, dword [ebx]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov edx, ebx
call ebp
mov eax, dword [esp + 0x24]
lea ebx, [eax - 1]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp ebx, 1
jg 0x5c4b95
jmp 0x5c49b0
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x58], edx
mov esi, dword [esp + 0x98]
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0xe0]
cmp edi, ecx
jle 0x5c4a6b
lea edx, [ebp + ecx]
mov ebx, dword [esp + 0x5c]
cmp ebx, edx
jae 0x5c4bce
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea eax, [0x5f3fe0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x98], eax
mov ebx, ecx
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x58]
jmp 0x5c4bce
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x78]
mov ecx, edx
mov edx, dword [esp + 0x4c]
mov esi, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x90]
test ecx, ecx
je 0x5c4f17
cdq
idiv ecx
cmp edi, eax
jge 0x5c4b49
mov dword [esp + 0x70], ebp
lea eax, [edi + 1]
mov edx, eax
imul eax, ecx
imul edi, ecx
mov ebp, dword [esp + 0x4c]
cmp ebp, eax
jb 0x5c4f0e
cmp eax, edi
jb 0x5c4f05
mov dword [esp + 0x78], edx
mov dword [esp + 0xc8], esi
sub ebp, edi
mov edx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edi, ebp
lea ebp, [ebx + edi]
mov dword [esp + 0x7c], ebp
mov esi, dword [esp + 0xa4]
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xac]
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call sym.math_big.nat.setBytes
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0xa4], eax
mov byte [esp + 0xa0], 0
lea eax, [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 4], eax
lea ecx, [esp + 0xb0]
mov dword [esp + 8], ecx
call sym.math_big._Int_.Add
mov eax, dword [0x785ba4]
lea ecx, [esp + 0xa0]
mov dword [esp], ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.math_big._Int_.Add
lea eax, [esp + 0xa0]
mov dword [esp], eax
call sym.math_big._Int_.Bytes
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xe0]
cmp edx, eax
jge 0x5c4dd1
mov ebx, eax
sub ebx, edx
cmp eax, ebx
jb 0x5c4efc
mov ebp, dword [esp + 0xc]
sub ebp, ebx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
sub eax, ebx
add ecx, ebp
cmp edx, eax
jle 0x5c4e29
mov ebx, dword [esp + 0xc8]
test ebx, ebx
je 0x5c4de6
mov ebp, dword [esp + 0x70]
jmp 0x5c4e21
mov dword [esp + 0x40], eax
mov dword [esp + 0x88], ecx
lea eax, [0x5f3fe0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call sym.runtime.makeslice
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0xe0]
mov ebp, edx
mov ebx, esi
mov esi, edx
sub edx, eax
xor edi, edi
jmp 0x5c4e7d
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0xc8]
cmp edx, eax
jg 0x5c4e3a
mov eax, edx
mov esi, dword [esp + 0x7c]
cmp ecx, esi
je 0x5c4c7e
mov dword [esp + 0x6c], ebx
mov dword [esp + 0xc4], ebp
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0xc4]
jmp 0x5c4c7e
mov byte [ebx + edi], 0
inc edi
cmp edi, edx
jge 0x5c4e87
cmp ebp, edi
ja 0x5c4e78
jmp 0x5c4ef3
cmp ebp, edx
jb 0x5c4eea
mov edi, ebp
sub ebp, edx
mov dword [esp + 0x74], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
add edx, ebx
mov ebp, dword [esp + 0x74]
cmp eax, ebp
jl 0x5c4eaa
mov eax, ebp
cmp ecx, edx
je 0x5c4edb
mov dword [esp + 0x74], edi
mov dword [esp + 0xc0], ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov ebx, dword [esp + 0xc0]
mov esi, dword [esp + 0xe0]
mov edi, dword [esp + 0x74]
mov edx, esi
mov eax, edi
mov ebp, ebx
mov ecx, ebp
mov ebx, eax
jmp 0x5c4e34
mov eax, edx
mov ecx, ebp
call sym.runtime.panicSliceB
mov eax, edi
mov ecx, ebp
call sym.runtime.panicIndex
mov ecx, eax
mov eax, ebx
call sym.runtime.panicSliceB
mov ecx, eax
mov eax, edi
call sym.runtime.panicSliceB
mov ecx, eax
mov edx, ebp
call sym.runtime.panicSliceAcap
call sym.runtime.panicdivide
mov ecx, edi
mov edx, eax
call sym.runtime.panicSliceAcap
mov eax, ebx
mov ecx, edx
call sym.runtime.panicSliceB
call sym.runtime.panicdivide
nop
call sym.runtime.morestack_noctxt
jmp sym.software.sslmate.com_src_go_pkcs12.pbkdf