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

Disassembly:
mov ecx, dword [0x71d934]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4b9450
sub esp, 0x58
mov eax, 0
mov dword [esp + 0x54], eax
mov byte [esp + 0x23], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
test byte [ecx], al
add ecx, 0x134
mov dword [esp], ecx
call sym.sync_atomic.LoadPointer
mov eax, dword [esp + 4]
test eax, eax
jne 0x4b8bc9
lea eax, [0x5aa560]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x10]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.os._dirInfo_.init
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax]
test byte [ecx], al
add ecx, 0x134
mov dword [esp], ecx
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x44]
mov dword [esp + 8], ecx
call sym.sync_atomic.CompareAndSwapPointer
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4b8bc5
nop
mov eax, dword [esp + 0x44]
mov dword [eax + 0x10], 0
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4b8aec
lea eax, [0x6f4ab0]
mov dword [esp], eax
lea edx, [0x58b140]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.sync._Pool_.Put
mov eax, dword [0x71da68]
test eax, eax
jne 0x4b8bab
mov eax, dword [esp + 0x44]
jmp 0x4b8bb9
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 8]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 8], 0
jmp 0x4b8aec
mov eax, dword [esp + 0x44]
mov dword [esp + 0x44], eax
test byte [eax], al
mov dword [esp], eax
call sym.sync._Mutex_.Lock
lea eax, [sym.os._File_.readdir.deferwrap1]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x50], eax
lea ecx, [esp + 0x4c]
mov dword [esp + 0x54], ecx
mov byte [esp + 0x23], 1
mov ecx, dword [eax + 8]
test ecx, ecx
jne 0x4b8c47
lea eax, [0x6f4ab0]
mov dword [esp], eax
call sym.sync._Pool_.Get
mov eax, dword [esp + 4]
lea ecx, [0x58b140]
cmp eax, ecx
jne 0x4b9430
mov ebx, dword [0x71da68]
mov ebp, dword [esp + 8]
test ebx, ebx
jne 0x4b8c31
mov ebx, dword [esp + 0x44]
jmp 0x4b8c42
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ebx, dword [esp + 0x44]
mov esi, dword [ebx + 8]
mov dword [edi + 4], esi
mov dword [ebx + 8], ebp
mov eax, ebx
mov ebx, dword [esp + 0x60]
test ebx, ebx
jg 0x4b8c56
mov ecx, 0xffffffff
jmp 0x4b8c58
mov ecx, ebx
test ecx, ecx
je 0x4b8f17
mov ebp, dword [eax + 0xc]
test ebp, ebp
jne 0x4b8ceb
mov edx, dword [eax + 8]
mov ebp, dword [edx + 4]
test ebp, ebp
jbe 0x4b9427
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x5c]
mov ebx, dword [ecx]
mov ebx, dword [ebx + 0x10]
mov esi, dword [eax + 0x18]
mov edx, dword [edx]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
call sym.internal_syscall_windows.GetFileInformationByHandleEx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x8c]
test eax, eax
jne 0x4b8cf2
mov ebx, dword [esp + 0x44]
mov ebp, dword [ebx + 0x18]
cmp ebp, 0xb
jne 0x4b8cd5
mov dword [ebx + 0x18], 0xa
jmp 0x4b8ce1
cmp ebp, 0xf
jne 0x4b8ce1
mov dword [ebx + 0x18], 0xe
mov eax, ebx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x60]
xor edx, edx
jmp 0x4b8fde
lea ecx, [0x5fadd0]
cmp eax, ecx
jne 0x4b8d2c
mov ecx, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x5fa0b0]
mov dword [esp + 8], eax
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4b8ec1
lea ecx, [0x5fadd0]
mov eax, dword [esp + 0x8c]
cmp eax, ecx
je 0x4b8d3b
xor eax, eax
jmp 0x4b8d63
mov ecx, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x5f9154]
mov dword [esp + 8], eax
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
lea ecx, [0x5fadd0]
test al, al
je 0x4b8d8e
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
cmp eax, 0xb
jne 0x4b8d7e
mov eax, dword [esp + 0x60]
test eax, eax
jmp 0x4b8f19
cmp eax, 0xf
jne 0x4b8d8e
mov eax, dword [esp + 0x60]
test eax, eax
jmp 0x4b8f19
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sym.os._File_.Stat
mov eax, dword [esp + 4]
test eax, eax
je 0x4b8dbb
mov ecx, dword [esp + 8]
mov eax, dword [eax + 0xc]
mov dword [esp], ecx
call eax
movzx eax, byte [esp + 4]
test al, al
je 0x4b8e40
lea eax, [0x5a1600]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x5c1902]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x130]
mov ecx, dword [ecx + 0x12c]
mov dword [eax + 0xc], edx
mov edx, dword [0x71da68]
test edx, edx
je 0x4b8e02
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x8c]
mov ebx, dword [esp + 0x90]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x71da68]
test ecx, ecx
je 0x4b8e27
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebx
mov dword [eax + 0x14], ebx
lea ecx, [0x5fadc0]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
jmp 0x4b8eb0
lea eax, [0x5a1600]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 7
lea ecx, [0x5b958a]
mov dword [eax], ecx
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx]
mov edx, dword [ecx + 0x130]
mov ecx, dword [ecx + 0x12c]
mov dword [eax + 0xc], edx
mov edx, dword [0x71da68]
test edx, edx
je 0x4b8e87
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 8], ecx
lea ecx, [0x5fadd0]
mov dword [eax + 0x10], ecx
lea ecx, [0x5f9134]
mov dword [eax + 0x14], ecx
lea ecx, [0x5fadc0]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
call eax
add esp, 0x58
ret
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 8]
lea edx, [0x6f4ab0]
mov dword [esp], edx
lea edx, [0x58b140]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.sync._Pool_.Put
mov eax, dword [0x71da68]
test eax, eax
jne 0x4b8efa
mov eax, dword [esp + 0x60]
test eax, eax
mov eax, dword [esp + 0x44]
jmp 0x4b8f0e
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 8]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov ecx, dword [esp + 0x60]
test ecx, ecx
mov dword [eax + 8], 0
jmp 0x4b8f19
test ebx, ebx
jle 0x4b8f2e
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x78]
add eax, dword [esp + 0x84]
test eax, eax
je 0x4b8f55
mov dword [esp + 0x8c], 0
mov dword [esp + 0x90], 0
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
call eax
add esp, 0x58
ret
mov eax, dword [0x6f3a28]
mov ecx, dword [0x6f3a2c]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], ecx
mov byte [esp + 0x23], 0
mov edx, dword [esp + 0x54]
mov eax, dword [edx]
call eax
add esp, 0x58
ret
xchg ebp, ebx
sete bl
xchg ebp, ebx
mov eax, esi
mov ebx, edx
mov edx, ebp
test ecx, ecx
je 0x4b8c58
test dl, dl
jne 0x4b8c58
mov edx, dword [eax + 8]
mov ebp, dword [edx + 4]
mov esi, dword [eax + 0xc]
cmp ebp, esi
jbe 0x4b941e
mov edx, dword [edx]
mov dword [esp + 0x48], edx
cmp dword [eax + 0x18], 0xa
jne 0x4b9047
mov ebp, dword [edx + esi + 0x3c]
shr ebp, 1
mov edi, dword [edx + esi]
lea edx, [edx + esi + 0x68]
test ebp, ebp
jl 0x4b9419
mov dword [esp + 0x38], edx
mov eax, 2
mul ebp
jo 0x4b9414
mov edx, ebx
mov ebx, dword [esp + 0x38]
neg ebx
cmp eax, ebx
ja 0x4b9414
mov eax, dword [esp + 0x38]
jmp 0x4b9081
mov ebp, dword [edx + esi + 0x3c]
shr ebp, 1
mov edi, dword [edx + esi]
lea edx, [edx + esi + 0x44]
test ebp, ebp
jl 0x4b940f
mov dword [esp + 0x38], edx
mov eax, 2
mul ebp
jo 0x4b940a
mov edx, ebx
mov ebx, dword [esp + 0x38]
neg ebx
cmp eax, ebx
ja 0x4b940a
mov eax, dword [esp + 0x38]
mov dword [esp + 0x30], esi
lea ebx, [edi + esi]
mov esi, dword [esp + 0x44]
mov dword [esi + 0xc], ebx
test edi, edi
jne 0x4b909a
mov dword [esi + 0xc], 0
cmp ebp, 1
jne 0x4b90ac
cmp word [eax], 0x2e
jne 0x4b90ac
test edi, edi
jmp 0x4b8fd1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edi
cmp ebp, 2
jne 0x4b90cd
cmp word [eax], 0x2e
jne 0x4b90cd
cmp word [eax + 2], 0x2e
jne 0x4b90cd
test edi, edi
jmp 0x4b8fd1
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.syscall.UTF16ToString
mov eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x64]
test edx, edx
jne 0x4b9183
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
inc ebp
mov esi, dword [esp + 0x68]
cmp ebx, ebp
jae 0x4b914c
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x591ae0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x70], eax
mov dword [esp + 0x68], esi
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x64]
mov dword [esp + 0x6c], ebp
lea ebx, [esi + ebp*8 - 4]
mov dword [ebx], ecx
mov ebx, dword [0x71da68]
lea ebp, [esi + ebp*8 - 8]
test ebx, ebx
je 0x4b9171
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ebp]
mov dword [edi + 4], ebx
mov dword [ebp], eax
mov ecx, dword [esp + 0x44]
lea ebx, [0x5fbdc4]
jmp 0x4b93f2
mov ebx, dword [esp + 0x44]
cmp dword [ebx + 0x18], 0xa
jne 0x4b9204
lea eax, [0x5af500]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
mov ebx, dword [edx + ecx + 0x38]
mov dword [eax + 8], ebx
mov ebx, dword [edx + ecx + 8]
mov ebp, dword [edx + ecx + 0xc]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebp
mov ebx, dword [edx + ecx + 0x10]
mov ebp, dword [edx + ecx + 0x14]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebp
mov ebx, dword [edx + ecx + 0x18]
mov ebp, dword [edx + ecx + 0x1c]
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x20], ebp
mov ebx, dword [edx + ecx + 0x2c]
mov dword [eax + 0x24], ebx
mov ebx, dword [edx + ecx + 0x28]
mov dword [eax + 0x28], ebx
mov ebx, dword [edx + ecx + 0x40]
mov dword [eax + 0x2c], ebx
mov ebx, dword [edx + ecx + 0x64]
mov dword [eax + 0x48], ebx
mov ecx, dword [edx + ecx + 0x60]
mov dword [eax + 0x4c], ecx
mov ecx, dword [esp + 0x44]
jmp 0x4b9291
nop
lea eax, [0x5af500]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
mov ebx, dword [edx + ecx + 0x38]
mov dword [eax + 8], ebx
mov ebx, dword [edx + ecx + 8]
mov ebp, dword [edx + ecx + 0xc]
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebp
mov ebx, dword [edx + ecx + 0x10]
mov ebp, dword [edx + ecx + 0x14]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebp
mov ebx, dword [edx + ecx + 0x18]
mov ebp, dword [edx + ecx + 0x1c]
mov dword [eax + 0x1c], ebx
mov dword [eax + 0x20], ebp
mov ebx, dword [edx + ecx + 0x2c]
mov dword [eax + 0x24], ebx
mov ebx, dword [edx + ecx + 0x28]
mov dword [eax + 0x28], ebx
mov ecx, dword [edx + ecx + 0x40]
mov dword [eax + 0x2c], ecx
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx + 0x20]
test edx, edx
je 0x4b9291
mov byte [eax + 0x50], 1
mov ebx, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x1c]
mov dword [eax + 0x40], ebx
mov ebx, dword [0x71da68]
test ebx, ebx
je 0x4b928e
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebp
mov dword [eax + 0x3c], ebp
mov ebx, dword [esp + 0x28]
mov dword [eax + 4], ebx
mov ebx, dword [0x71da68]
test ebx, ebx
jne 0x4b92a8
mov ebx, dword [esp + 0x3c]
jmp 0x4b92b8
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x3c]
mov dword [edi], ebx
mov ebp, dword [eax]
mov dword [edi + 4], ebp
mov dword [esp + 0x40], eax
mov dword [eax], ebx
mov ebx, dword [ecx + 0x14]
mov dword [eax + 0x44], ebx
mov ebx, dword [esp + 0x64]
cmp ebx, 1
jne 0x4b9358
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
inc esi
mov edi, dword [esp + 0x74]
cmp ebp, esi
jae 0x4b9324
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x59d4a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x74], edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x78], esi
lea ebp, [edi + esi*8 - 8]
mov edx, ebx
lea ebx, [0x5fbdc4]
mov dword [ebp], ebx
mov ebp, dword [0x71da68]
lea esi, [edi + esi*8 - 4]
test ebp, ebp
je 0x4b9351
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [esi]
mov dword [edi + 4], ebp
mov dword [esi], eax
jmp 0x4b93f2
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
inc esi
mov edi, dword [esp + 0x80]
cmp ebp, esi
jae 0x4b93ba
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x5a4fc0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x88], eax
mov dword [esp + 0x80], edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x84], esi
lea ebp, [edi + esi*8 - 8]
mov edx, ebx
lea ebx, [0x5fbe5c]
mov dword [ebp], ebx
mov ebp, dword [0x71da68]
lea esi, [edi + esi*8 - 4]
test ebp, ebp
je 0x4b93ea
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [esi]
mov dword [edi + 4], ebp
mov dword [esi], eax
lea ebx, [0x5fbdc4]
mov ebp, dword [esp + 0x2c]
dec ebp
mov esi, dword [esp + 0x24]
test esi, esi
mov edx, dword [esp + 0x60]
mov esi, ecx
mov ecx, ebp
jmp 0x4b8fd1
call sym.runtime.panicunsafeslicelen
call sym.runtime.panicunsafeslicelen
call sym.runtime.panicunsafeslicelen
call sym.runtime.panicunsafeslicelen
mov eax, esi
mov ecx, ebp
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x592ba0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
nop
call sym.runtime.deferreturn
add esp, 0x58
ret
call sym.runtime.morestack_noctxt
jmp sym.os._File_.readdir