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

Disassembly:
mov ecx, dword [0x6dded4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x50]
cmp eax, dword [ecx + 8]
jbe 0x4c6103
sub esp, 0xd0
mov ebx, dword [esp + 0xe0]
mov ebp, ebx
and ebx, 0x1f
nop
cmp ebx, 0xa
jbe 0x4c5b69
cmp ebx, 0xf
jbe 0x4c5857
cmp ebx, 0x11
ja 0x4c57b7
cmp ebx, 0x10
je 0x4c5699
nop
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call sym.reflect.Value.lenNonSlice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x44], eax
xor ecx, ecx
jmp 0x4c60fa
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp edx, ecx
jb 0x4c6096
cmp eax, ecx
ja 0x4c6091
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xd4]
mov ebx, dword [edx + 0x14]
lea ebp, [ebx + 8]
mov dword [edx + 0x14], ebp
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], ecx
mov eax, dword [edx + 0x10]
lea ecx, [ebx + 0x10]
cmp eax, ecx
jb 0x4c608a
cmp ecx, ebp
jb 0x4c6083
movsd xmm0, qword [esp + 0x78]
movsd qword [esp + 0x68], xmm0
mov ecx, dword [edx]
mov esi, dword [edx + 4]
mov ecx, dword [ecx + 0x28]
mov edi, dword [edx + 8]
mov dword [esp], esi
sub eax, ebx
add eax, 0xfffffff8
mov ebx, eax
neg eax
sar eax, 0x1f
and ebp, eax
lea eax, [ebp + edi]
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], ecx
movsd xmm0, qword [esp + 0x70]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd xmm1, qword [esp + 0x68]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm0
call sym.reflect.Value.SetComplex
jmp 0x4c5e91
cmp ebx, 0x17
jne 0x4c57d2
nop
mov eax, dword [esp + 0xdc]
mov ecx, dword [eax + 4]
mov dword [esp + 0x40], ecx
xor edx, edx
jmp 0x4c607a
cmp ebx, 0x19
jne 0x4c5e91
test ebp, 0x200
jne 0x4c57f2
lea eax, [0x5b8460]
mov ecx, dword [esp + 0xd8]
jmp 0x4c581f
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call sym.reflect.Value.typeSlow
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0xe0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x3c], eax
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov ebx, dword [esp + 0xdc]
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call sym.reflect.Value.NumField
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
xor ecx, ecx
jmp 0x4c5f00
cmp ebx, 0xd
ja 0x4c599e
cmp ebx, 0xb
jne 0x4c58fb
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp edx, ecx
jb 0x4c5ef0
cmp eax, ecx
ja 0x4c5eeb
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call sym.reflect.Value.SetUint
jmp 0x4c5e91
cmp ebx, 0xd
jne 0x4c5e91
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp edx, ecx
jb 0x4c5ee6
cmp eax, ecx
ja 0x4c5ee1
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x60], eax
movss xmm0, dword [esp + 0x60]
cvtss2sd xmm0, xmm0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call sym.reflect.Value.SetFloat
jmp 0x4c5e91
cmp ebx, 0xe
jne 0x4c5a4e
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 8]
cmp edx, ecx
jb 0x4c5edc
cmp eax, ecx
ja 0x4c5ed7
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x28]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 8
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xd4]
add dword [edx + 0x14], 8
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
movsd xmm0, qword [esp + 0x80]
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call sym.reflect.Value.SetFloat
jmp 0x4c5e91
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp edx, ecx
jb 0x4c5ed2
cmp eax, ecx
ja 0x4c5ecd
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
mov edx, dword [ecx + 0x14]
lea ebx, [edx + 4]
mov dword [ecx + 0x14], ebx
mov dword [esp + 0x5c], eax
mov eax, dword [ecx + 0x10]
lea ebp, [edx + 8]
cmp eax, ebp
jb 0x4c5ec4
cmp ebp, ebx
jb 0x4c5ebb
movss xmm0, dword [esp + 0x5c]
cvtss2sd xmm0, xmm0
movsd qword [esp + 0x88], xmm0
mov ebp, dword [ecx]
mov esi, dword [ecx + 4]
mov ebp, dword [ebp + 0x24]
mov edi, dword [ecx + 8]
mov dword [esp], esi
sub eax, edx
add eax, 0xfffffffc
mov edx, eax
neg eax
sar eax, 0x1f
and ebx, eax
lea eax, [ebx + edi]
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edx
call ebp
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov dword [esp + 0x58], eax
movss xmm0, dword [esp + 0x58]
cvtss2sd xmm0, xmm0
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 8], eax
movsd xmm1, qword [esp + 0x88]
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm0
call sym.reflect.Value.SetComplex
jmp 0x4c5e91
cmp ebx, 5
ja 0x4c5cc1
cmp ebx, 3
ja 0x4c5c27
cmp ebx, 1
jne 0x4c5bcc
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
cmp eax, ecx
jae 0x4c5eb6
mov ecx, dword [edx + 8]
movzx ecx, byte [ecx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
test cl, cl
setne al
mov byte [esp + 0xc], al
call sym.reflect.Value.SetBool
jmp 0x4c5e91
cmp ebx, 3
jne 0x4c5e91
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
nop
cmp ecx, eax
jbe 0x4c5eb1
mov ecx, dword [edx + 8]
add ecx, eax
movsx ecx, byte [ecx]
mov ebx, ecx
sar ecx, 0x1f
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
call sym.reflect.Value.SetInt
jmp 0x4c5e91
cmp ebx, 4
jne 0x4c5c77
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call sym.encoding_binary._decoder_.int16
movsx eax, word [esp + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call sym.reflect.Value.SetInt
jmp 0x4c5e91
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call sym.encoding_binary._decoder_.int32
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call sym.reflect.Value.SetInt
jmp 0x4c5e91
cmp ebx, 8
ja 0x4c5d70
cmp ebx, 6
je 0x4c5d27
cmp ebx, 8
jne 0x4c5e91
mov edx, dword [esp + 0xd4]
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x14]
cmp ecx, eax
jbe 0x4c5eac
mov ecx, dword [edx + 8]
movzx ecx, byte [ecx + eax]
inc eax
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
call sym.reflect.Value.SetUint
jmp 0x4c5e91
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
call sym.encoding_binary._decoder_.int64
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xd8]
mov dword [esp], edx
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call sym.reflect.Value.SetInt
jmp 0x4c5e91
cmp ebx, 9
jne 0x4c5e0c
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 2]
cmp edx, ecx
jb 0x4c5ea7
cmp eax, ecx
ja 0x4c5ea2
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x20]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], ebp
call ecx
movzx eax, word [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 2
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
call sym.reflect.Value.SetUint
jmp 0x4c5e91
mov ebx, dword [esp + 0xd4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x14]
lea ecx, [eax + 4]
cmp edx, ecx
jb 0x4c5e9d
cmp eax, ecx
ja 0x4c5e98
mov ecx, dword [ebx]
mov ebp, dword [ebx + 4]
mov ecx, dword [ecx + 0x24]
mov esi, dword [ebx + 8]
mov dword [esp], ebp
sub edx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, esi
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xd4]
add dword [ecx + 0x14], 4
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xdc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
call sym.reflect.Value.SetUint
add esp, 0xd0
ret
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicIndex
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, ebp
call sym.runtime.panicSliceB
mov ecx, ebp
mov edx, eax
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
mov edx, dword [esp + 0x50]
lea ecx, [edx + 1]
mov eax, dword [esp + 0x48]
cmp ecx, eax
jge 0x4c5e91
mov dword [esp + 0x50], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call sym.reflect.Value.Field
mov eax, dword [esp + 0x18]
mov ecx, eax
and eax, 0x160
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
cmp eax, 0x100
je 0x4c5fbc
mov dword [esp + 0x64], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x94], ebx
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp + 0x90]
mov dword [esp], edx
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], ebx
call ecx
lea edi, [esp + 0x9c]
lea esi, [esp + 8]
call fcn.0046103e
cmp dword [esp + 0xa0], 1
je 0x4c5f99
mov eax, 1
jmp 0x4c5fa6
mov eax, dword [esp + 0x9c]
cmp byte [eax], 0x5f
setne al
test al, al
je 0x4c5fe3
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x98]
mov ebx, dword [esp + 0x94]
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call sym.encoding_binary._decoder_.value
mov eax, dword [esp + 0xd4]
jmp 0x4c5ef5
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 8], eax
call sym.encoding_binary.dataSize
mov eax, dword [esp + 0xd4]
mov ecx, dword [eax + 0x14]
add ecx, dword [esp + 0xc]
mov dword [eax + 0x14], ecx
jmp 0x4c5ef5
mov dword [esp + 0x4c], edx
mov ecx, dword [esp + 0xd8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
call sym.reflect.Value.Index
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call sym.encoding_binary._decoder_.value
mov eax, dword [esp + 0x4c]
lea edx, [eax + 1]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0xe0]
cmp edx, ecx
jl 0x4c601b
jmp 0x4c5e91
mov eax, ebp
call sym.runtime.panicSliceB
mov edx, eax
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
mov dword [esp + 0x54], ecx
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov edx, dword [esp + 0xdc]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call sym.reflect.Value.Index
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xd4]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call sym.encoding_binary._decoder_.value
mov eax, dword [esp + 0x54]
lea ecx, [eax + 1]
mov eax, dword [esp + 0x44]
cmp ecx, eax
jl 0x4c609b
jmp 0x4c5e91
call sym.runtime.morestack_noctxt
jmp sym.encoding_binary._decoder_.value