Function at 0x4caac0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4cb57b
sub esp, 0x80
xor eax, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
lea eax, [0x5d0ec0]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x2e
mov dword [esp + 0x10], 0x2e
call dbg.io.ReadFull
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x4cb52e
mov eax, dword [esp + 0x58]
test byte [eax], al
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0x2e
mov dword [esp + 0x7c], 0x2e
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
cmp ecx, 3
jbe 0x4cb574
add ecx, 0xfffffffc
mov edx, dword [eax]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0x2a
lea ecx, [eax + 4]
mov dword [esp + 0x74], ecx
cmp edx, 0x2014b50
jne 0x4cb50d
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
cmp ecx, 1
jbe 0x4cb56d
add ecx, 0xfffffffe
movzx ebx, word [eax + 4]
mov dword [esp + 0x78], ecx
lea ecx, [edx - 2]
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea eax, [ecx + eax + 4]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x84]
mov word [eax + 8], bx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
cmp ebx, 1
jbe 0x4cb56d
add ebx, 0xfffffffe
movzx ebp, word [edx]
mov dword [esp + 0x78], ebx
add ecx, 0xfffffffe
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, edx
mov dword [esp + 0x74], ecx
mov word [eax + 0xa], bp
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp edx, 1
jbe 0x4cb56d
add edx, 0xfffffffe
movzx ebp, word [ecx]
mov dword [esp + 0x78], edx
lea edx, [ebx - 2]
mov dword [esp + 0x7c], edx
neg edx
sar edx, 0x1f
and edx, 2
add ecx, edx
mov dword [esp + 0x74], ecx
mov word [eax + 0xc], bp
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x7c]
cmp ecx, 1
jbe 0x4cb56d
add ecx, 0xfffffffe
movzx ebp, word [edx]
mov dword [esp + 0x78], ecx
lea ecx, [ebx - 2]
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, edx
mov dword [esp + 0x74], ecx
mov word [eax + 0xe], bp
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp edx, 1
jbe 0x4cb56d
add edx, 0xfffffffe
movzx ebp, word [ecx]
mov dword [esp + 0x78], edx
lea edx, [ebx - 2]
mov dword [esp + 0x7c], edx
neg edx
sar edx, 0x1f
and edx, 2
add ecx, edx
mov dword [esp + 0x74], ecx
mov word [eax + 0x10], bp
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
cmp ebx, 1
jbe 0x4cb56d
add ebx, 0xfffffffe
movzx ebp, word [edx]
mov dword [esp + 0x78], ebx
add ecx, 0xfffffffe
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, edx
mov dword [esp + 0x74], ecx
mov word [eax + 0x12], bp
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x74]
cmp edx, 3
jbe 0x4cb574
add edx, 0xfffffffc
mov ebp, dword [ebx]
mov dword [esp + 0x78], edx
add ecx, 0xfffffffc
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add ecx, ebx
mov dword [esp + 0x74], ecx
mov dword [eax + 0x14], ebp
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp edx, 3
jbe 0x4cb574
add edx, 0xfffffffc
mov ebp, dword [ecx]
mov dword [esp + 0x78], edx
lea edx, [ebx - 4]
mov dword [esp + 0x7c], edx
neg edx
sar edx, 0x1f
and edx, 4
add ecx, edx
mov dword [esp + 0x74], ecx
mov dword [eax + 0x18], ebp
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
cmp ebx, 3
jbe 0x4cb574
add ebx, 0xfffffffc
mov ebp, dword [edx]
mov dword [esp + 0x78], ebx
add ecx, 0xfffffffc
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add ecx, edx
mov dword [esp + 0x74], ecx
mov dword [eax + 0x1c], ebp
mov ecx, dword [eax + 0x18]
mov dword [eax + 0x20], ecx
mov dword [eax + 0x24], 0
mov ecx, dword [eax + 0x1c]
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], 0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x74]
cmp ecx, 1
jbe 0x4cb56d
movzx ebp, word [ebx]
add ecx, 0xfffffffe
mov dword [esp + 0x78], ecx
lea ecx, [edx - 2]
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
lea edx, [ebx + ecx]
mov dword [esp + 0x74], edx
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x7c]
cmp esi, 1
jbe 0x4cb56d
movzx ecx, word [ebx + ecx]
mov dword [esp + 0x50], ecx
lea ebx, [esi - 2]
mov dword [esp + 0x78], ebx
lea ebx, [edi - 2]
mov dword [esp + 0x7c], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
lea esi, [edx + ebx]
mov dword [esp + 0x74], esi
mov edi, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
cmp edi, 1
jbe 0x4cb56d
movzx edx, word [edx + ebx]
lea ebx, [edi - 2]
mov dword [esp + 0x78], ebx
add ecx, 0xfffffffe
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add ecx, esi
mov dword [esp + 0x74], ecx
mov ebx, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
cmp ebx, 4
jb 0x4cb566
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x48], edx
lea edi, [esi - 4]
mov dword [esp + 0x44], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
lea edx, [edi + ecx]
mov dword [esp + 0x74], edx
lea ebp, [ebx - 4]
mov dword [esp + 0x78], ebp
mov eax, dword [esp + 0x44]
mov dword [esp + 0x7c], eax
cmp ebp, 3
jbe 0x4cb574
lea eax, [ebx - 8]
mov ecx, dword [ecx + edi]
mov dword [esp + 0x78], eax
lea eax, [esi - 8]
mov dword [esp + 0x7c], eax
neg eax
sar eax, 0x1f
and eax, 4
add eax, edx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x84]
mov dword [eax + 0x3c], ecx
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x78]
cmp ebx, 3
jbe 0x4cb574
add ebx, 0xfffffffc
mov ebp, dword [edx]
mov dword [esp + 0x78], ebx
add ecx, 0xfffffffc
mov dword [esp + 0x7c], ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add ecx, edx
mov dword [esp + 0x74], ecx
mov dword [eax + 0x5c], ebp
mov dword [eax + 0x60], 0
lea ecx, [0x5d6b80]
mov dword [esp], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea ebx, [edx + ecx]
mov dword [esp + 0x44], ebx
mov ebp, dword [esp + 0x48]
add ebp, ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call dbg.runtime.makeslice
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x88]
mov dword [esp], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call dbg.io.ReadFull
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x4cb4f8
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
ja 0x4cb55f
mov dword [esp], 0
mov edx, dword [esp + 0x54]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
call dbg.runtime.slicebytetostring
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
mov dword [edx + 4], ecx
mov ecx, dword [0x752a30]
test ecx, ecx
jne 0x4cb4e0
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
ja 0x4cb558
mov ebx, dword [esp + 0x28]
cmp ecx, ebx
ja 0x4cb558
mov ebp, dword [esp + 0x50]
mov dword [edx + 0x34], ebp
mov ebp, ebx
sub ebx, eax
mov dword [edx + 0x38], ebx
mov esi, dword [0x752a30]
lea edi, [edx + 0x30]
neg ebx
sar ebx, 0x1f
and eax, ebx
mov ebx, dword [esp + 0x54]
add eax, ebx
test esi, esi
jne 0x4cb4bc
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0x24]
cmp ecx, eax
ja 0x4cb551
mov dword [esp], 0
sub ebp, ecx
mov edx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ecx
add ebx, ebp
mov dword [esp + 4], ebx
sub eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call dbg.runtime.slicebytetostring
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x84]
mov dword [edx + 0x44], ecx
mov ecx, dword [0x752a30]
lea ebx, [edx + 0x40]
test ecx, ecx
jne 0x4cb4a4
mov dword [edx + 0x40], eax
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0x18]
cmp ecx, 0xffffffff
sete bl
mov ebp, dword [edx + 0x5c]
mov esi, dword [edx + 0x60]
cmp ebp, 0xffffffff
xchg ebp, ebx
sete bl
xchg ebp, ebx
test esi, esi
xchg esi, ebx
sete bl
xchg esi, ebx
and esi, ebp
mov ebp, dword [edx + 0x38]
mov edi, dword [edx + 0x30]
mov edx, dword [edx + 0x34]
test edx, edx
jle 0x4cb49b
mov dword [esp + 0x40], ecx
mov byte [esp + 0x23], bl
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], ebp
jmp 0x4cb0dc
sub esi, edx
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
add ebp, esi
mov dword [esp + 0x68], ebp
sub ebx, edx
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x70], edi
mov ecx, dword [esp + 0x40]
movzx ebx, byte [esp + 0x23]
movzx esi, byte [esp + 0x22]
mov edx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov edi, dword [esp + 0x70]
cmp edx, 4
jl 0x4cb492
add edx, 0xfffffffe
movzx ecx, word [ebp]
mov dword [esp + 0x6c], edx
lea edx, [edi - 2]
mov dword [esp + 0x70], edx
neg edx
sar edx, 0x1f
and edx, 2
lea edi, [ebp + edx]
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0x70]
mov esi, dword [esp + 0x6c]
cmp esi, 1
jbe 0x4cb56d
movzx edx, word [ebp + edx]
lea ebp, [esi - 2]
mov dword [esp + 0x6c], ebp
add ebx, 0xfffffffe
mov dword [esp + 0x70], ebx
neg ebx
sar ebx, 0x1f
and ebx, 2
mov dword [esp + 0x50], ebx
lea ebp, [edi + ebx]
mov dword [esp + 0x68], ebp
mov esi, dword [esp + 0x70]
mov ebx, dword [esp + 0x6c]
cmp edx, ebx
jg 0x4cb483
cmp cx, 1
je 0x4cb16d
cmp edx, ebx
jbe 0x4cb0af
jmp 0x4cb543
cmp edx, esi
ja 0x4cb54a
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], esi
cmp eax, 0xffffffff
jne 0x4cb470
cmp edx, 8
jl 0x4cb44f
lea eax, [edx - 8]
mov ecx, dword [esp + 0x50]
movzx edx, byte [edi + ecx + 1]
movzx ebx, byte [edi + ecx]
mov dword [esp + 0x3c], ebx
movzx ebx, byte [edi + ecx + 2]
mov dword [esp + 0x38], ebx
movzx ebx, byte [edi + ecx + 3]
mov dword [esp + 0x34], ebx
movzx ebx, byte [edi + ecx + 6]
mov dword [esp + 0x30], ebx
movzx ebx, byte [edi + ecx + 7]
mov dword [esp + 0x2c], ebx
movzx ebx, byte [edi + ecx + 4]
movzx ecx, byte [edi + ecx + 5]
mov dword [esp + 0x60], eax
lea eax, [esi - 8]
mov dword [esp + 0x64], eax
neg eax
sar eax, 0x1f
and eax, 8
add eax, ebp
mov dword [esp + 0x5c], eax
mov eax, edx
shl edx, 8
mov ebp, dword [esp + 0x3c]
or ebp, edx
mov edx, dword [esp + 0x38]
mov esi, edx
shl edx, 0x10
or ebp, edx
mov edx, dword [esp + 0x34]
mov edi, edx
shl edx, 0x18
or edx, ebp
mov ebp, dword [esp + 0x84]
mov dword [ebp + 0x28], edx
shr esi, 0x10
shr eax, 0x18
or eax, esi
shr edi, 8
or edi, eax
or ebx, edi
shl ecx, 8
or ebx, ecx
mov eax, dword [esp + 0x30]
shl eax, 0x10
or eax, ebx
mov ecx, dword [esp + 0x2c]
shl ecx, 0x18
or ecx, eax
mov dword [ebp + 0x2c], ecx
mov eax, dword [esp + 0x40]
cmp eax, 0xffffffff
jne 0x4cb448
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x5c]
cmp ecx, 8
jl 0x4cb427
add ecx, 0xfffffff8
movzx ebx, byte [edx + 3]
mov dword [esp + 0x40], ebx
movzx esi, byte [edx + 2]
movzx edi, byte [edx + 1]
movzx ebp, byte [edx]
movzx ebx, byte [edx + 7]
mov dword [esp + 0x3c], ebx
movzx ebx, byte [edx + 6]
mov dword [esp + 0x38], ebx
movzx ebx, byte [edx + 5]
mov dword [esp + 0x34], ebx
movzx ebx, byte [edx + 4]
mov dword [esp + 0x60], ecx
add eax, 0xfffffff8
mov dword [esp + 0x64], eax
neg eax
sar eax, 0x1f
and eax, 8
add eax, edx
mov dword [esp + 0x5c], eax
mov eax, edi
shl edi, 8
or ebp, edi
mov ecx, esi
shl esi, 0x10
or ebp, esi
mov edx, dword [esp + 0x40]
mov esi, edx
shl edx, 0x18
or ebp, edx
mov edx, dword [esp + 0x84]
mov dword [edx + 0x20], ebp
shr ecx, 0x10
shr eax, 0x18
or eax, ecx
shr esi, 8
or esi, eax
or ebx, esi
mov eax, dword [esp + 0x34]
shl eax, 8
or ebx, eax
mov eax, dword [esp + 0x38]
shl eax, 0x10
or eax, ebx
mov ecx, dword [esp + 0x3c]
shl ecx, 0x18
or eax, ecx
mov dword [edx + 0x24], eax
movzx eax, byte [esp + 0x22]
test al, al
je 0x4cb3bc
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
cmp ecx, 8
jl 0x4cb406
add ecx, 0xfffffff8
movzx ebp, byte [ebx]
movzx esi, byte [ebx + 3]
mov dword [esp + 0x40], esi
movzx edi, byte [ebx + 1]
movzx edx, byte [ebx + 2]
movzx esi, byte [ebx + 4]
mov dword [esp + 0x3c], esi
movzx esi, byte [ebx + 5]
mov dword [esp + 0x38], esi
movzx esi, byte [ebx + 6]
mov dword [esp + 0x34], esi
movzx esi, byte [ebx + 7]
mov dword [esp + 0x60], ecx
add eax, 0xfffffff8
mov dword [esp + 0x64], eax
neg eax
sar eax, 0x1f
and eax, 8
add eax, ebx
mov dword [esp + 0x5c], eax
mov eax, edi
shl edi, 8
or ebp, edi
mov ecx, edx
shl edx, 0x10
or ebp, edx
mov edx, dword [esp + 0x40]
mov ebx, edx
shl edx, 0x18
or ebp, edx
mov edx, dword [esp + 0x84]
mov dword [edx + 0x5c], ebp
shr ecx, 0x10
shr eax, 0x18
or eax, ecx
shr ebx, 8
or ebx, eax
mov eax, dword [esp + 0x3c]
or eax, ebx
mov ecx, dword [esp + 0x38]
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x34]
shl ecx, 0x10
or ecx, eax
shl esi, 0x18
or ecx, esi
mov dword [edx + 0x60], ecx
xor eax, eax
mov ecx, eax
test cl, cl
je 0x4cb3e5
mov eax, dword [0x73fad4]
mov ecx, dword [0x73fad0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
add esp, 0x80
ret
test al, al
jne 0x4cb3c4
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
add esp, 0x80
ret
mov eax, dword [0x73fad4]
mov ecx, dword [0x73fad0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
add esp, 0x80
ret
mov eax, dword [0x73fad4]
mov ecx, dword [0x73fad0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
add esp, 0x80
ret
mov edx, ebp
jmp 0x4cb2ff
mov eax, dword [0x73fad4]
mov ecx, dword [0x73fad0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
add esp, 0x80
ret
mov eax, dword [esp + 0x40]
cmp eax, 0xffffffff
mov ebp, dword [esp + 0x84]
jmp 0x4cb249
movzx eax, byte [esp + 0x22]
movzx ecx, byte [esp + 0x23]
jmp 0x4cb3c0
mov eax, esi
mov ecx, ebx
jmp 0x4cb3c0
mov ecx, ebx
mov eax, esi
jmp 0x4cb3c0
mov dword [esp], ebx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov edx, dword [esp + 0x84]
jmp 0x4cb05b
mov dword [esp], edi
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x84]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x28]
jmp 0x4caffe
mov dword [esp], edx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov edx, dword [esp + 0x84]
jmp 0x4cafb3
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
add esp, 0x80
ret
mov eax, dword [0x73fad4]
mov ecx, dword [0x73fad0]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
add esp, 0x80
ret
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], ecx
add esp, 0x80
ret
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.morestack_noctxt
jmp dbg.archive/zip.readDirectoryHeader