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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4b117d
sub esp, 0x68
mov dword [esp + 0x40], 0xe
xor eax, eax
xor ecx, ecx
xor edx, edx
mov ebx, edx
mov ebp, ecx
jmp 0x4b09f3
mov esi, ecx
mov ecx, edx
mov edx, esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x38], edx
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x6c]
mov edi, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov edi, dword [edi + 0x14]
mov dword [esp], ecx
call edi
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [esp + 4]
mov ebp, dword [esp + 8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call dbg.archive/tar.discard
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x6c]
lea ebx, [edx + 0x14]
test ecx, ecx
jne 0x4b115b
mov eax, dword [edx + 8]
mov ecx, dword [edx + 0xc]
test ecx, ecx
jne 0x4b1176
lea ecx, [edx + 0x18]
test byte [ecx], al
cmp eax, 0x200
ja 0x4b1176
mov dword [esp + 0x64], ebx
mov ebx, dword [edx + 4]
mov ebp, dword [edx]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x200
call dbg.archive/tar.tryReadFull
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
test ecx, ecx
jne 0x4b1147
mov eax, dword [esp + 0x6c]
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [esp], eax
call dbg.archive/tar.(*Reader).readHeader
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
test ebx, ebx
jne 0x4b1133
mov edx, dword [eax + 0x14]
mov ebx, dword [eax + 0x18]
movzx ebp, byte [eax]
add ebp, 0xffffffcf
xchg ebp, eax
cmp al, 5
xchg ebp, eax
ja 0x4b0af1
xor edx, edx
xor ebx, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x48], ecx
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
test edx, edx
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, ebp
test ebx, ebx
xchg ebp, ebx
setl bl
xchg ebp, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x4b107c
mov edx, dword [0x73c33c]
mov ebx, dword [0x73c338]
test ebx, ebx
jne 0x4b1068
mov edx, dword [eax + 0x90]
mov ebx, dword [esp + 0x40]
and ebx, edx
mov dword [esp + 0x40], ebx
movzx edx, byte [eax]
lea ebp, [edx - 0x4b]
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jbe 0x4b0f6b
cmp dl, 0x67
jne 0x4b0ca9
and ebx, 4
mov dword [esp + 0x40], ebx
lea eax, [0x640dd0]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
call dbg.archive/tar.parsePAX
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test edx, edx
jne 0x4b0c95
mov ecx, dword [esp + 0x50]
movzx edx, byte [ecx]
cmp dl, 0x67
je 0x4b0bb2
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x58]
jmp 0x4b09ed
mov dword [esp], ecx
mov dword [esp + 4], eax
call dbg.archive/tar.mergePAX
lea eax, [0x603140]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
mov ebx, dword [esp + 4]
mov dword [esp + 0x60], ebx
mov dword [ebx + 8], ecx
mov ecx, dword [0x74e1b0]
lea ebp, [ebx + 4]
test ecx, ecx
jne 0x4b0c7c
mov dword [ebx + 4], edx
movzx ecx, byte [eax]
mov byte [ebx], cl
mov ecx, dword [eax + 0x88]
mov edx, dword [0x74e1b0]
lea ebp, [ebx + 0x88]
test edx, edx
jne 0x4b0c66
mov dword [ebx + 0x88], ecx
mov eax, dword [eax + 0x8c]
mov ecx, dword [0x74e1b0]
lea edx, [ebx + 0x8c]
test ecx, ecx
jne 0x4b0c54
mov dword [ebx + 0x8c], eax
mov eax, dword [esp + 0x40]
mov dword [ebx + 0x90], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x68
ret
mov dword [esp], edx
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ebx, dword [esp + 0x60]
jmp 0x4b0c32
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x60]
jmp 0x4b0c16
mov dword [esp], ebp
mov dword [esp + 4], edx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x60]
jmp 0x4b0bf5
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], ecx
add esp, 0x68
ret
cmp dl, 0x78
je 0x4b0b60
mov dword [esp], eax
mov ecx, dword [esp + 0x4c]
mov dword [esp + 4], ecx
call dbg.archive/tar.mergePAX
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
jne 0x4b0f57
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4b0f4e
mov ecx, dword [esp + 0x50]
mov dword [ecx + 8], eax
mov eax, dword [0x74e1b0]
lea edx, [ecx + 4]
test eax, eax
jne 0x4b0f35
mov eax, dword [esp + 0x54]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x4b0d20
mov dword [ecx + 0x10], eax
mov eax, dword [0x74e1b0]
lea edx, [ecx + 0xc]
test eax, eax
jne 0x4b0f1c
mov eax, dword [esp + 0x58]
mov dword [ecx + 0xc], eax
movzx eax, byte [ecx]
test al, al
jne 0x4b0d61
mov eax, dword [ecx + 8]
mov edx, dword [ecx + 4]
cmp eax, 1
jl 0x4b0f15
lea ebx, [eax - 1]
cmp ebx, eax
ja 0x4b116f
sub eax, ebx
mov ebp, eax
neg eax
sar eax, 0x1f
and ebx, eax
lea eax, [edx + ebx]
cmp ebp, 1
je 0x4b0ef1
xor eax, eax
test al, al
je 0x4b0d61
mov byte [ecx], 0x35
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x14]
movzx ebx, byte [ecx]
add ebx, 0xffffffcf
cmp bl, 5
ja 0x4b0ee6
xor eax, eax
xor edx, edx
test eax, eax
setb bl
test edx, edx
xchg ebp, ebx
sete bl
xchg ebp, ebx
and ebp, ebx
test edx, edx
setl bl
or ebx, ebp
test bl, bl
je 0x4b0e38
mov eax, dword [0x73c33c]
mov edx, dword [0x73c338]
test edx, edx
jne 0x4b0e24
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
call dbg.archive/tar.(*Reader).handleSparseFile
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test ecx, ecx
jne 0x4b0e10
mov eax, dword [esp + 0x40]
mov ecx, eax
and eax, 2
test ecx, 2
je 0x4b0dea
test ecx, 4
je 0x4b0dea
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov dword [ecx + 0x90], eax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x68
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
xor ecx, ecx
sub ecx, eax
and ecx, 0x1ff
mov edx, dword [esp + 0x6c]
mov dword [edx + 8], ecx
mov dword [edx + 0xc], 0
lea ecx, [0x5f1320]
mov dword [esp], ecx
call dbg.runtime.newobject
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [esp + 4]
mov dword [ebx], edx
mov edx, dword [0x74e1b0]
lea ebp, [ebx + 4]
test edx, edx
jne 0x4b0ecc
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebx + 0xc], ecx
lea ecx, [0x642840]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x74e1b0]
test ecx, ecx
jne 0x4b0eb6
mov dword [eax + 0x14], ebx
mov ecx, dword [esp + 0x50]
xor eax, eax
xor edx, edx
jmp 0x4b0da5
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
jmp 0x4b0ea9
mov dword [esp + 0x5c], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x5c]
jmp 0x4b0e85
mov ebx, eax
mov eax, edx
mov edx, ebx
jmp 0x4b0d7a
mov dword [esp], eax
lea eax, [0x60ec20]
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call dbg.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x50]
jmp 0x4b0d5a
xor eax, eax
jmp 0x4b0d5a
mov dword [esp], edx
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x50]
jmp 0x4b0d20
mov dword [esp], edx
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
call dbg.runtime.writebarrierptr
mov ecx, dword [esp + 0x50]
jmp 0x4b0cfd
mov ecx, dword [esp + 0x50]
jmp 0x4b0cfd
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
and ebx, 8
mov dword [esp + 0x40], ebx
lea eax, [0x640dd0]
mov dword [esp], eax
mov ecx, dword [esp + 0x6c]
mov dword [esp + 4], ecx
call dbg.io/ioutil.ReadAll
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
test ecx, ecx
jne 0x4b1054
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x44], ebp
lea eax, [0x5dcc80]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x50]
movzx ecx, byte [ecx]
cmp cl, 0x4b
je 0x4b1022
cmp cl, 0x4c
je 0x4b0ff0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
mov ebp, edx
mov edx, eax
mov eax, dword [esp + 0x4c]
jmp 0x4b09ed
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
call dbg.archive/tar.(*parser).parseString
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x3c]
jmp 0x4b0fe3
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
call dbg.archive/tar.(*parser).parseString
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x38]
jmp 0x4b0fe3
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edx
add esp, 0x68
ret
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], ebx
xor eax, eax
sub eax, edx
and eax, 0x1ff
mov ecx, dword [esp + 0x6c]
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
lea eax, [0x5f1320]
mov dword [esp], eax
call dbg.runtime.newobject
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov ebx, dword [esp + 4]
mov dword [ebx], edx
mov edx, dword [0x74e1b0]
lea ebp, [ebx + 4]
test edx, edx
jne 0x4b1119
mov dword [ebx + 4], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + 8], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0xc], ecx
lea ecx, [0x642840]
mov dword [eax + 0x10], ecx
mov edx, dword [0x74e1b0]
test edx, edx
jne 0x4b10fd
mov dword [eax + 0x14], ebx
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
xor edx, edx
xor ebx, ebx
jmp 0x4b0b2e
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ebx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
lea ecx, [0x642840]
jmp 0x4b10ec
mov dword [esp + 0x5c], ebx
mov dword [esp], ebp
mov dword [esp + 4], ecx
call dbg.runtime.writebarrierptr
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x5c]
jmp 0x4b10c8
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], edx
add esp, 0x68
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], eax
add esp, 0x68
ret
call dbg.runtime.panicslice
ud2
call dbg.runtime.panicslice
ud2
call dbg.runtime.morestack_noctxt
jmp dbg.archive/tar.(*Reader).next