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

Disassembly:
mov ecx, dword [0x7e8f64]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4a58d0
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 0x4a5049
lea eax, [0x517380]
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 0x4a5045
nop
mov eax, dword [esp + 0x44]
mov dword [eax + 0x10], 0
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x4a4f6c
lea eax, [0x7c2340]
mov dword [esp], eax
lea edx, [0x4ff340]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.sync._Pool_.Put
mov eax, dword [0x7e90a0]
test eax, eax
jne 0x4a502b
mov eax, dword [esp + 0x44]
jmp 0x4a5039
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 8]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 8], 0
jmp 0x4a4f6c
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 0x4a50c7
lea eax, [0x7c2340]
mov dword [esp], eax
call sym.sync._Pool_.Get
mov eax, dword [esp + 4]
lea ecx, [0x4ff340]
cmp eax, ecx
jne 0x4a58b0
mov ebx, dword [0x7e90a0]
mov ebp, dword [esp + 8]
test ebx, ebx
jne 0x4a50b1
mov ebx, dword [esp + 0x44]
jmp 0x4a50c2
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 0x4a50d6
mov ecx, 0xffffffff
jmp 0x4a50d8
mov ecx, ebx
test ecx, ecx
je 0x4a5397
mov ebp, dword [eax + 0xc]
test ebp, ebp
jne 0x4a516b
mov edx, dword [eax + 8]
mov ebp, dword [edx + 4]
test ebp, ebp
jbe 0x4a58a7
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 0x4a5172
mov ebx, dword [esp + 0x44]
mov ebp, dword [ebx + 0x18]
cmp ebp, 0xb
jne 0x4a5155
mov dword [ebx + 0x18], 0xa
jmp 0x4a5161
cmp ebp, 0xf
jne 0x4a5161
mov dword [ebx + 0x18], 0xe
mov eax, ebx
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x60]
xor edx, edx
jmp 0x4a545e
lea ecx, [0x55475c]
cmp eax, ecx
jne 0x4a51ac
mov ecx, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x553544]
mov dword [esp + 8], eax
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4a5341
lea ecx, [0x55475c]
mov eax, dword [esp + 0x8c]
cmp eax, ecx
je 0x4a51bb
xor eax, eax
jmp 0x4a51e3
mov ecx, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x553478]
mov dword [esp + 8], eax
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
lea ecx, [0x55475c]
test al, al
je 0x4a520e
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x18]
cmp eax, 0xb
jne 0x4a51fe
mov eax, dword [esp + 0x60]
test eax, eax
jmp 0x4a5399
cmp eax, 0xf
jne 0x4a520e
mov eax, dword [esp + 0x60]
test eax, eax
jmp 0x4a5399
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call sym.os._File_.Stat
mov eax, dword [esp + 4]
test eax, eax
je 0x4a523b
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 0x4a52c0
lea eax, [0x510300]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1c
lea ecx, [0x529d5d]
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 [0x7e90a0]
test edx, edx
je 0x4a5282
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 [0x7e90a0]
test ecx, ecx
je 0x4a52a7
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebx
mov dword [eax + 0x14], ebx
lea ecx, [0x5547cc]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
jmp 0x4a5330
lea eax, [0x510300]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 7
lea ecx, [0x521c00]
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 [0x7e90a0]
test edx, edx
je 0x4a5307
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
mov dword [eax + 8], ecx
lea ecx, [0x55475c]
mov dword [eax + 0x10], ecx
lea ecx, [0x553468]
mov dword [eax + 0x14], ecx
lea ecx, [0x5547cc]
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, [0x7c2340]
mov dword [esp], edx
lea edx, [0x4ff340]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.sync._Pool_.Put
mov eax, dword [0x7e90a0]
test eax, eax
jne 0x4a537a
mov eax, dword [esp + 0x60]
test eax, eax
mov eax, dword [esp + 0x44]
jmp 0x4a538e
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 0x4a5399
test ebx, ebx
jle 0x4a53ae
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x78]
add eax, dword [esp + 0x84]
test eax, eax
je 0x4a53d5
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 [0x7c1a20]
mov ecx, dword [0x7c1a24]
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 0x4a50d8
test dl, dl
jne 0x4a50d8
mov edx, dword [eax + 8]
mov ebp, dword [edx + 4]
mov esi, dword [eax + 0xc]
cmp ebp, esi
jbe 0x4a589e
mov edx, dword [edx]
mov dword [esp + 0x48], edx
cmp dword [eax + 0x18], 0xa
jne 0x4a54c7
mov ebp, dword [edx + esi + 0x3c]
shr ebp, 1
mov edi, dword [edx + esi]
lea edx, [edx + esi + 0x68]
test ebp, ebp
jl 0x4a5899
mov dword [esp + 0x38], edx
mov eax, 2
mul ebp
jo 0x4a5894
mov edx, ebx
mov ebx, dword [esp + 0x38]
neg ebx
cmp eax, ebx
ja 0x4a5894
mov eax, dword [esp + 0x38]
jmp 0x4a5501
mov ebp, dword [edx + esi + 0x3c]
shr ebp, 1
mov edi, dword [edx + esi]
lea edx, [edx + esi + 0x44]
test ebp, ebp
jl 0x4a588f
mov dword [esp + 0x38], edx
mov eax, 2
mul ebp
jo 0x4a588a
mov edx, ebx
mov ebx, dword [esp + 0x38]
neg ebx
cmp eax, ebx
ja 0x4a588a
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 0x4a551a
mov dword [esi + 0xc], 0
cmp ebp, 1
jne 0x4a552c
cmp word [eax], 0x2e
jne 0x4a552c
test edi, edi
jmp 0x4a5451
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x24], edi
cmp ebp, 2
jne 0x4a554d
cmp word [eax], 0x2e
jne 0x4a554d
cmp word [eax + 2], 0x2e
jne 0x4a554d
test edi, edi
jmp 0x4a5451
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 0x4a5603
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
inc ebp
mov esi, dword [esp + 0x68]
cmp ebx, ebp
jae 0x4a55cc
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5043e0]
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 [0x7e90a0]
lea ebp, [esi + ebp*8 - 8]
test ebx, ebx
je 0x4a55f1
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, [0x554b84]
jmp 0x4a5872
mov ebx, dword [esp + 0x44]
cmp dword [ebx + 0x18], 0xa
jne 0x4a5684
lea eax, [0x51ac40]
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 0x4a5711
nop
lea eax, [0x51ac40]
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 0x4a5711
mov byte [eax + 0x50], 1
mov ebx, dword [ecx + 0x20]
mov ebp, dword [ecx + 0x1c]
mov dword [eax + 0x40], ebx
mov ebx, dword [0x7e90a0]
test ebx, ebx
je 0x4a570e
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 [0x7e90a0]
test ebx, ebx
jne 0x4a5728
mov ebx, dword [esp + 0x3c]
jmp 0x4a5738
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 0x4a57d8
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x78]
inc esi
mov edi, dword [esp + 0x74]
cmp ebp, esi
jae 0x4a57a4
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x50d760]
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, [0x554b84]
mov dword [ebp], ebx
mov ebp, dword [0x7e90a0]
lea esi, [edi + esi*8 - 4]
test ebp, ebp
je 0x4a57d1
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [esi]
mov dword [edi + 4], ebp
mov dword [esi], eax
jmp 0x4a5872
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x84]
inc esi
mov edi, dword [esp + 0x80]
cmp ebp, esi
jae 0x4a583a
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x512240]
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, [0x554c9c]
mov dword [ebp], ebx
mov ebp, dword [0x7e90a0]
lea esi, [edi + esi*8 - 4]
test ebp, ebp
je 0x4a586a
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [esi]
mov dword [edi + 4], ebp
mov dword [esi], eax
lea ebx, [0x554b84]
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 0x4a5451
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, [0x504ea0]
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