Function at 0x40b9c0
Capabilities:
Create directory
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x544051
mov eax, dword fs:[0]
push eax
sub esp, 0x594
mov eax, dword [0x5960c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor edi, edi
push 0x103
lea eax, [ebp - 0x227]
mov ebx, ecx
push edi
mov dword [ebp - 4], edi
push eax
mov dword [ebp - 0x580], ebx
mov esi, edx
mov dword [ebp - 0x588], edi
mov dword [ebp - 0x584], edi
mov byte [ebp - 0x228], 0
call fcn.00521f30
add esp, 0xc
push 0x5c
push ebx
call fcn.0051c2f0
add esp, 8
lea ecx, [eax + 1]
lea edx, [ebp - 0x228]
lea esp, [esp]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x40ba40
lea eax, [ebp - 0x228]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ba53
sub eax, edx
push 0x103
mov byte [ebp + eax - 0x22c], cl
mov byte [ebp - 0x120], cl
lea ecx, [ebp - 0x11f]
push edi
push ecx
call fcn.00521f30
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40ba83
sub eax, edx
cmp eax, 3
jbe 0x40bb53
mov eax, esi
mov edx, esi
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40baa0
lea edi, [ebp - 0x120]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40bab0
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea edx, [ebp - 0x120]
and ecx, 3
push edx
rep movsb byte es:[edi], byte [esi]
call fcn.00411ad0
add esp, 4
cmp eax, 1
je 0x40baeb
push 0
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea edi, [ebp - 0x120]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40baf2
mov bx, word [0x5718c4]
lea eax, [ebp - 0x228]
mov word [edi], bx
mov ecx, eax
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x40bb10
lea edi, [ebp - 0x120]
sub eax, ecx
mov esi, ecx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40bb22
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x120]
dec edi
nop
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bb40
mov word [edi], bx
mov ebx, dword [ebp - 0x580]
jmp 0x40bba7
lea ecx, [ebp - 0x120]
call fcn.0040c910
lea eax, [ebp - 0x228]
mov edx, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bb66
lea edi, [ebp - 0x120]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40bb76
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebp - 0x120]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bb95
mov cx, word [0x5718c4]
mov word [edi], cx
lea esi, [ebp - 0x120]
call fcn.00411970
test eax, eax
jne 0x40bc13
push 0x103
push eax
lea edx, [ebp - 0x227]
push edx
mov byte [ebp - 0x228], al
call fcn.00521f30
mov eax, esi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40bbd6
sub eax, edx
dec eax
push eax
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x228]
push ecx
call fcn.00524870
add esp, 8
lea edx, [ebp - 0x228]
mov ecx, esp
mov dword [ebp - 0x58c], esp
push edx
call fcn.00401ea0
call fcn.0040b540
add esp, 4
mov dword [ebp - method.CCabinet.virtual_0], vtable.CCabinet.0
lea eax, [ebp - 0x120]
push eax
mov byte [ebp - 4], 1
call fcn.00411ad0
add esp, 4
cmp eax, 1
je 0x40bc44
push 0
lea ecx, [ebp - 0x120]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
test ebx, ebx
je 0x40bc5a
lea edx, [ebp - 0x120]
push edx
mov ecx, ebx
call fcn.004148d0
test eax, eax
jne 0x40bc7c
mov eax, 2
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x594], eax
push 0x58a878
lea eax, [ebp - 0x594]
push eax
call fcn.005222e2
push 0x103
lea ecx, [ebp - 0x32f]
push 0
push ecx
mov byte [ebp - 0x330], 0
call fcn.00521f30
add esp, 0xc
lea ecx, [ebp - 0x120]
lea edx, [ebp - 0x330]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x40bca5
lea edi, [ebp - 0x330]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bcb6
mov dx, word [0x5718c4]
push 0x140
lea eax, [ebp - 0x578]
push 0
push eax
mov word [edi], dx
call fcn.00521f30
add esp, 0xc
push 0x103
lea ecx, [ebp - 0x437]
push 0
push ecx
mov byte [ebp - 0x438], 0
call fcn.00521f30
add esp, 0xc
lea ecx, [ebp - 0x120]
lea edx, [ebp - 0x438]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x40bd07
lea edi, [ebp - 0x438]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40bd18
mov dx, word [0x572f94]
lea eax, [ebp - 0x578]
push eax
lea ecx, [ebp - 0x438]
push ecx
mov word [edi], dx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x584], eax
cmp eax, 0xffffffff
jne 0x40bd6b
mov eax, 2
push 0x58a878
lea edx, [ebp - 0x590]
push edx
mov dword [ebp - 0x588], eax
mov dword [ebp - 0x590], eax
call fcn.005222e2
mov dword [ebp - 0x580], 0
call fcn.004219a6
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x40bd8f
push 0x80004005
call fcn.00402210
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x57c], ebx
lea ecx, [ebp - 0x54c]
mov byte [ebp - 4], 2
test ecx, 0xffff0000
jne 0x40bdde
mov edx, ecx
movzx esi, dx
push esi
call fcn.00422d52
test eax, eax
je 0x40becf
push esi
push eax
lea ecx, [ebp - 0x57c]
call fcn.00401d30
mov ebx, dword [ebp - 0x57c]
jmp 0x40becf
lea esi, [ebp - 0x54c]
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x40bde7
sub esi, ecx
jne 0x40be54
cmp dword [ebx - 0xc], 0
mov esi, dword [ebx - 0x10]
lea eax, [ebx - 0x10]
je 0x40becf
cmp dword [eax + 0xc], 0
lea ecx, [eax + 0xc]
jge 0x40be2a
cmp dword [ebx - 8], 0
jge 0x40be1b
push 0x80070057
call fcn.00402210
mov dword [ebx - 0xc], 0
mov byte [ebx], 0
jmp 0x40becf
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40be40
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0xc]
mov ecx, esi
call eax
lea ebx, [eax + 0x10]
mov dword [ebp - 0x57c], ebx
jmp 0x40becf
mov ecx, dword [ebx - 0xc]
lea edi, [ebp - 0x54c]
sub edi, ebx
mov dword [ebp - 0x58c], ecx
test esi, esi
jns 0x40be73
push 0x80070057
call fcn.00402210
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x40be96
push esi
lea ecx, [ebp - 0x57c]
call fcn.00402080
mov ebx, dword [ebp - 0x57c]
mov eax, dword [ebx - 8]
push esi
cmp edi, dword [ebp - 0x58c]
ja 0x40beae
add edi, ebx
push edi
push eax
push ebx
call fcn.0051adfe
jmp 0x40bebc
lea edx, [ebp - 0x54c]
push edx
push eax
push ebx
call fcn.0051ac77
add esp, 0x10
cmp esi, dword [ebx - 8]
jg 0x40be11
mov dword [ebx - 0xc], esi
mov byte [esi + ebx], 0
mov byte [ebp - 4], 3
mov esi, dword [ebx - 0xc]
test esi, esi
jns 0x40bee4
push 0x80070057
call fcn.00402210
mov eax, dword [ebx - 8]
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x40bf07
push esi
lea ecx, [ebp - 0x57c]
call fcn.00402080
mov ebx, dword [ebp - 0x57c]
lea eax, [esi + 1]
push eax
push ebx
call fcn.0051c423
add esp, 8
cmp eax, 0x50
ja case.0x40bf20.0
movzx ecx, byte [eax + 0x40c17c]
jmp dword [ecx*4 + 0x40c16c]
call fcn.00422bde
call fcn.00422c16
cmp esi, dword [ebx - 8]
jg 0x40be11
mov dword [ebx - 0xc], esi
mov byte [esi + ebx], 0
lea esi, [ebx - 0x10]
cmp esi, esi
je 0x40bfe8
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x40bfd2
mov ecx, dword [esi]
cmp ecx, ecx
jne 0x40bfd2
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
call eax
cmp dword [esi + 0xc], 0
lea ecx, [esi + 0xc]
jl 0x40bf7c
cmp eax, dword [esi]
jne 0x40bf7c
mov ebx, esi
mov edx, 1
lock xadd dword [ecx], edx
jmp 0x40bfb1
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov ebx, eax
test ebx, ebx
jne 0x40bf95
call fcn.00402200
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov eax, dword [esi + 4]
inc eax
push eax
lea ecx, [esi + 0x10]
push ecx
push eax
lea edx, [ebx + 0x10]
push edx
call fcn.0051ac77
add esp, 0x10
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x40bfc7
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [ebp - 0x57c], ebx
jmp 0x40bfe8
mov eax, dword [ebx - 0xc]
push eax
push ebx
lea ecx, [ebp - 0x57c]
call fcn.00402150
mov ebx, dword [ebp - 0x57c]
push 0x104
lea ecx, [ebp - 0x330]
push 0
push ecx
call fcn.00521f30
add esp, 0xc
lea ecx, [ebp - 0x120]
lea edx, [ebp - 0x330]
lea ebx, [ebx]
mov al, byte [ecx]
mov byte [edx], al
inc ecx
inc edx
test al, al
jne 0x40c010
lea edi, [ebp - 0x330]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x40c021
mov dx, word [0x5718c4]
lea eax, [ebp - 0x54c]
mov word [edi], dx
mov edx, eax
jmp 0x40c040
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40c040
lea edi, [ebp - 0x330]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x40c050
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp dword [ebx - 0xc], 0
jl 0x40c0e1
push str..exe
push ebx
call fcn.0051bb5e
add esp, 8
test eax, eax
je 0x40c094
sub eax, ebx
test eax, eax
jle 0x40c094
lea eax, [ebp - 0x330]
push eax
call fcn.0040c240
jmp 0x40c0db
cmp dword [ebx - 0xc], 0
jl 0x40c0e1
push str..dll
push ebx
call fcn.0051bb5e
add esp, 8
test eax, eax
je 0x40c0b2
sub eax, ebx
test eax, eax
jg 0x40c0d0
cmp dword [ebx - 0xc], 0
jl 0x40c0e1
push str..ocx
push ebx
call fcn.0051bb5e
add esp, 8
test eax, eax
je 0x40c0e1
sub eax, ebx
test eax, eax
jle 0x40c0e1
lea ecx, [ebp - 0x330]
call fcn.0040c1d0
mov dword [ebp - 0x580], eax
lea eax, [ebx - 0x10]
mov byte [ebp - 4], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40c101
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [ebp - 0x584]
lea ecx, [ebp - 0x578]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x40bd75
mov eax, dword [ebp - 0x580]
dec eax
neg eax
sbb eax, eax
and eax, 5
mov esi, eax
jmp 0x40c13b
mov eax, dword [ebp - 0x584]
test eax, eax
je 0x40c14c
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0051ac68
mov esp, ebp
pop ebp
ret