Function at 0x6b52b840
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x6c
mov esi, dword [esp + 0x88]
mov ebx, dword [esp + 0x80]
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x20], esi
mov esi, dword [sym.imp.libssp_0.dll___stack_chk_guard]
mov dword [esp + 0x5c], esi
xor esi, esi
cmp dword [esp + 0x90], 0xf
mov dword [esp + 0x2c], ebx
jbe 0x6b52c1de
mov edx, dword [eax]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x3c], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
lea eax, [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [ebx + 0xc]
mov eax, dword [esp + 0x94]
test eax, eax
je 0x6b52ba30
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
jmp 0x6b52b964
mov ecx, dword [esp + 0x44]
mov eax, esi
mov edx, edi
add eax, esi
shld edx, esi, 1
sar ecx, 0x1f
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x14]
and ecx, 0x87
xor ecx, eax
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x10]
mov ecx, edi
shr ecx, 0x1f
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x20]
shld edx, eax, 1
add eax, eax
or ecx, eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x18], ecx
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x90], 0xf
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], eax
jbe 0x6b52bc70
mov eax, dword [ebx]
mov edx, dword [esp + 0x10]
add ebx, 0x10
add ebp, 0x10
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
xor eax, edx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x48], eax
mov eax, dword [ebx - 0xc]
xor eax, ecx
mov dword [esp + 0x4c], eax
mov eax, dword [ebx - 8]
xor eax, esi
mov dword [esp + 0x50], eax
mov eax, dword [ebx - 4]
xor eax, edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x54], eax
mov eax, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [edi + 8]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x44]
xor edx, esi
xor eax, edi
mov dword [ebp - 0x10], edx
mov dword [ebp - 0xc], eax
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x24], ecx
xor ecx, dword [esp + 0x54]
xor eax, edx
mov dword [ebp - 4], ecx
mov dword [ebp - 8], eax
sub dword [esp + 0x90], 0x10
mov dword [esp + 0x20], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ecx
jne 0x6b52b8f8
xor eax, eax
mov ebx, dword [esp + 0x5c]
xor ebx, dword [sym.imp.libssp_0.dll___stack_chk_guard]
jne 0x6b52c1e8
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [esp + 0x90], 0xf
je 0x6b52b8c4
sub dword [esp + 0x90], 0x10
cmp dword [esp + 0x90], 0xf
ja 0x6b52b8c4
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x48]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], eax
lea esi, [esi]
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
sar ebx, 0x1f
shld edx, eax, 1
and ebx, 0x87
add eax, eax
shr ecx, 0x1f
xor ebx, eax
mov esi, edx
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
shld edx, eax, 1
add eax, eax
mov edi, edx
mov edx, dword [esp + 0x20]
or ecx, eax
mov dword [esp + 0x10], ecx
mov eax, dword [edx]
xor eax, ebx
mov dword [esp + 0x48], eax
mov eax, dword [edx + 4]
xor eax, esi
mov dword [esp + 0x4c], eax
mov eax, dword [edx + 8]
xor eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 0xc]
xor eax, edi
mov dword [esp + 0x54], eax
mov eax, dword [ecx]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x50]
xor esi, dword [esp + 0x4c]
mov edx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], esi
mov ecx, esi
mov esi, dword [esp + 0x90]
xor ebx, dword [esp + 0x48]
xor eax, edi
mov dword [esp + 0x50], edx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x54], eax
test esi, esi
je 0x6b52bbfb
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x20]
lea edx, [eax + 0x10]
lea eax, [ebp + 0x10]
lea ecx, [esi + edx]
lea ebx, [esi + 0x10]
cmp eax, ecx
jae 0x6b52bb59
add edx, ebp
cmp ebx, edx
jb 0x6b52c025
cmp dword [esp + 0x90], 4
jb 0x6b52bde0
mov edx, dword [esp + 0x48]
mov dword [eax], edx
mov esi, dword [esp + 0x90]
mov edx, dword [esp + esi + 0x44]
mov dword [eax + esi - 4], edx
lea edx, [eax + 4]
mov ecx, dword [esp + 0x28]
and edx, 0xfffffffc
sub eax, edx
sub ecx, eax
add eax, dword [esp + 0x90]
and eax, 0xfffffffc
cmp eax, 4
jb 0x6b52bbad
and eax, 0xfffffffc
mov esi, eax
xor eax, eax
mov edi, dword [ecx + eax]
mov dword [edx + eax], edi
add eax, 4
cmp eax, esi
jb 0x6b52bba0
mov esi, dword [esp + 0x28]
cmp dword [esp + 0x90], 4
mov eax, ebx
mov edx, esi
jae 0x6b52be46
xor ecx, ecx
test byte [esp + 0x90], 2
je 0x6b52bbda
movzx ecx, word [eax]
mov word [edx], cx
mov ecx, 2
test byte [esp + 0x90], 1
je 0x6b52bbeb
movzx eax, byte [eax + ecx]
mov byte [edx + ecx], al
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x54]
xor ebx, dword [esp + 0x38]
xor eax, dword [esp + 0x44]
xor ecx, dword [esp + 0x3c]
xor edx, dword [esp + 0x40]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x4c], ecx
mov eax, dword [ebx]
mov dword [esp + 0x50], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [ebx + 8]
mov eax, dword [esp + 0x48]
xor eax, dword [esp + 0x38]
mov dword [ebp], eax
mov eax, dword [esp + 0x4c]
xor eax, dword [esp + 0x3c]
mov dword [ebp + 4], eax
mov eax, dword [esp + 0x50]
xor eax, dword [esp + 0x40]
mov dword [ebp + 8], eax
mov eax, dword [esp + 0x54]
xor eax, dword [esp + 0x44]
mov dword [ebp + 0xc], eax
xor eax, eax
jmp 0x6b52ba0f
mov eax, dword [esp + 0x94]
mov dword [esp + 0x20], ebx
test eax, eax
je 0x6b52ba80
mov edi, dword [esp + 0x90]
mov eax, 1
mov esi, ebx
test edi, edi
cmovne eax, dword [esp + 0x90]
mov ebx, eax
lea eax, [esi + eax]
cmp ebp, eax
jae 0x6b52bcb0
lea eax, [ebp + ebx]
cmp esi, eax
jb 0x6b52be6d
cmp ebx, 4
jb 0x6b52bda8
mov eax, dword [esp + 0x48]
lea esi, [ebp + 4]
and esi, 0xfffffffc
mov dword [ebp], eax
mov eax, dword [esp + ebx + 0x44]
mov dword [ebp + ebx - 4], eax
mov eax, ebp
mov edx, dword [esp + 0x28]
sub eax, esi
sub edx, eax
add eax, ebx
and eax, 0xfffffffc
cmp eax, 4
jb 0x6b52bcf6
and eax, 0xfffffffc
mov ecx, eax
xor eax, eax
mov edi, dword [edx + eax]
mov dword [esi + eax], edi
add eax, 4
cmp eax, ecx
jb 0x6b52bce9
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
mov ecx, edi
mov edx, esi
cmp ebx, 4
jae 0x6b52be20
xor eax, eax
test bl, 2
je 0x6b52bd1d
movzx eax, word [edx]
mov word [ecx], ax
mov eax, 2
and ebx, 1
je 0x6b52bd29
movzx edx, byte [edx + eax]
mov byte [ecx + eax], dl
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
xor dword [esp + 0x48], eax
mov eax, dword [esp + 0x18]
xor dword [esp + 0x50], eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x14]
xor dword [esp + 0x4c], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1c]
xor dword [esp + 0x54], edx
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [ebx + 8]
mov eax, dword [esp + 0x38]
xor dword [esp + 0x48], eax
mov eax, dword [esp + 0x3c]
xor dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
xor dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
xor dword [esp + 0x54], eax
mov eax, dword [esp + 0x48]
mov dword [ebp - 0x10], eax
mov eax, dword [esp + 0x4c]
mov dword [ebp - 0xc], eax
mov eax, dword [esp + 0x50]
mov dword [ebp - 8], eax
mov eax, dword [esp + 0x54]
mov dword [ebp - 4], eax
xor eax, eax
jmp 0x6b52ba0f
test ebx, ebx
je 0x6b52bcf6
mov eax, dword [esp + 0x28]
movzx eax, byte [eax]
mov byte [ebp], al
test bl, 2
je 0x6b52bcf6
mov eax, dword [esp + 0x28]
movzx eax, word [eax + ebx - 2]
mov word [ebp + ebx - 2], ax
jmp 0x6b52bcf6
mov edx, dword [esp + 0x90]
test edx, edx
je 0x6b52bbad
mov esi, dword [esp + 0x28]
movzx edx, byte [esi]
mov byte [eax], dl
test byte [esp + 0x90], 2
je 0x6b52bbad
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x90]
movzx edx, word [esi + edi - 2]
mov word [eax + edi - 2], dx
jmp 0x6b52bbad
mov edx, ebx
xor eax, eax
and edx, 0xfffffffc
mov ecx, dword [esi + eax]
mov dword [edi + eax], ecx
add eax, 4
cmp eax, edx
jb 0x6b52be27
mov esi, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
lea ecx, [esi + eax]
add edx, eax
jmp 0x6b52bd0b
mov edx, dword [esp + 0x90]
xor eax, eax
and edx, 0xfffffffc
mov ecx, dword [ebx + eax]
mov dword [esi + eax], ecx
add eax, 4
cmp eax, edx
jb 0x6b52be52
mov esi, dword [esp + 0x28]
lea edx, [esi + eax]
add eax, ebx
jmp 0x6b52bbc3
movzx eax, byte [esi]
movzx edx, byte [esp + 0x48]
cmp dword [esp + 0x90], 1
mov byte [ebp], dl
mov byte [esp + 0x48], al
je 0x6b52bd29
movzx eax, byte [esi + 1]
movzx edx, byte [esp + 0x49]
cmp dword [esp + 0x90], 2
mov byte [ebp + 1], dl
mov byte [esp + 0x49], al
je 0x6b52bd29
movzx eax, byte [esi + 2]
movzx edx, byte [esp + 0x4a]
cmp dword [esp + 0x90], 3
mov byte [ebp + 2], dl
mov byte [esp + 0x4a], al
je 0x6b52bd29
movzx eax, byte [esi + 3]
movzx edx, byte [esp + 0x4b]
cmp dword [esp + 0x90], 4
mov byte [ebp + 3], dl
mov byte [esp + 0x4b], al
je 0x6b52bd29
movzx eax, byte [esi + 4]
movzx edx, byte [esp + 0x4c]
cmp dword [esp + 0x90], 5
mov byte [ebp + 4], dl
mov byte [esp + 0x4c], al
je 0x6b52bd29
movzx eax, byte [esi + 5]
movzx edx, byte [esp + 0x4d]
cmp dword [esp + 0x90], 6
mov byte [ebp + 5], dl
mov byte [esp + 0x4d], al
je 0x6b52bd29
movzx eax, byte [esi + 6]
movzx edx, byte [esp + 0x4e]
cmp dword [esp + 0x90], 7
mov byte [ebp + 6], dl
mov byte [esp + 0x4e], al
je 0x6b52bd29
movzx eax, byte [esi + 7]
movzx edx, byte [esp + 0x4f]
cmp dword [esp + 0x90], 8
mov byte [ebp + 7], dl
mov byte [esp + 0x4f], al
je 0x6b52bd29
movzx eax, byte [esi + 8]
movzx edx, byte [esp + 0x50]
cmp dword [esp + 0x90], 9
mov byte [ebp + 8], dl
mov byte [esp + 0x50], al
je 0x6b52bd29
movzx eax, byte [esi + 9]
movzx edx, byte [esp + 0x51]
cmp dword [esp + 0x90], 0xa
mov byte [ebp + 9], dl
mov byte [esp + 0x51], al
je 0x6b52bd29
movzx eax, byte [esi + 0xa]
movzx edx, byte [esp + 0x52]
cmp dword [esp + 0x90], 0xb
mov byte [ebp + 0xa], dl
mov byte [esp + 0x52], al
je 0x6b52bd29
movzx eax, byte [esi + 0xb]
movzx edx, byte [esp + 0x53]
cmp dword [esp + 0x90], 0xc
mov byte [ebp + 0xb], dl
mov byte [esp + 0x53], al
je 0x6b52bd29
movzx eax, byte [esi + 0xc]
movzx edx, byte [esp + 0x54]
cmp dword [esp + 0x90], 0xd
mov byte [ebp + 0xc], dl
mov byte [esp + 0x54], al
je 0x6b52bd29
movzx eax, byte [esi + 0xd]
movzx edx, byte [esp + 0x55]
cmp dword [esp + 0x90], 0xf
mov byte [ebp + 0xd], dl
mov byte [esp + 0x55], al
jne 0x6b52bd29
movzx eax, byte [esi + 0xe]
movzx edx, byte [esp + 0x56]
mov byte [esp + 0x56], al
mov byte [ebp + 0xe], dl
jmp 0x6b52bd29
movzx edx, byte [esi + 0x10]
movzx eax, byte [esp + 0x48]
cmp dword [esp + 0x90], 1
mov byte [ebp + 0x10], al
mov byte [esp + 0x48], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x11]
movzx eax, byte [esp + 0x49]
cmp dword [esp + 0x90], 2
mov byte [ebp + 0x11], al
mov byte [esp + 0x49], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x12]
movzx eax, byte [esp + 0x4a]
cmp dword [esp + 0x90], 3
mov byte [ebp + 0x12], al
mov byte [esp + 0x4a], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x13]
movzx eax, byte [esp + 0x4b]
cmp dword [esp + 0x90], 4
mov byte [ebp + 0x13], al
mov byte [esp + 0x4b], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x14]
movzx eax, byte [esp + 0x4c]
cmp dword [esp + 0x90], 5
mov byte [ebp + 0x14], al
mov byte [esp + 0x4c], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x15]
movzx eax, byte [esp + 0x4d]
cmp dword [esp + 0x90], 6
mov byte [ebp + 0x15], al
mov byte [esp + 0x4d], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x16]
movzx eax, byte [esp + 0x4e]
cmp dword [esp + 0x90], 7
mov byte [ebp + 0x16], al
mov byte [esp + 0x4e], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x17]
movzx eax, byte [esp + 0x4f]
cmp dword [esp + 0x90], 8
mov byte [ebp + 0x17], al
mov byte [esp + 0x4f], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x18]
movzx eax, byte [esp + 0x50]
cmp dword [esp + 0x90], 9
mov byte [ebp + 0x18], al
mov byte [esp + 0x50], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x19]
movzx eax, byte [esp + 0x51]
cmp dword [esp + 0x90], 0xa
mov byte [ebp + 0x19], al
mov byte [esp + 0x51], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x1a]
movzx eax, byte [esp + 0x52]
cmp dword [esp + 0x90], 0xb
mov byte [ebp + 0x1a], al
mov byte [esp + 0x52], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x1b]
movzx eax, byte [esp + 0x53]
cmp dword [esp + 0x90], 0xc
mov byte [ebp + 0x1b], al
mov byte [esp + 0x53], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x1c]
movzx eax, byte [esp + 0x54]
cmp dword [esp + 0x90], 0xd
mov byte [ebp + 0x1c], al
mov byte [esp + 0x54], dl
je 0x6b52bbeb
movzx edx, byte [esi + 0x1d]
movzx eax, byte [esp + 0x55]
cmp dword [esp + 0x90], 0xf
mov byte [ebp + 0x1d], al
mov byte [esp + 0x55], dl
jne 0x6b52bbeb
movzx edx, byte [esi + 0x1e]
movzx eax, byte [esp + 0x56]
mov byte [esp + 0x56], dl
mov byte [ebp + 0x1e], al
jmp 0x6b52bbeb
mov eax, 0xffffffff
jmp 0x6b52ba0f
call sym.___stack_chk_fail
nop
nop
nop