Function at 0x45b110
Capabilities:
Enumerate files on windows
Enumerate files recursively
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x520
mov eax, dword [0x4f0100]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
push edi
mov dword [ebp - 0x4d0], edx
mov dword [ebp - 0x520], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x4d8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x4a8], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x49c], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 0x4b0], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x4b4], eax
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x4ac], eax
lea eax, [ebp - 0x464]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_FindFirstFileW]
push ecx
mov dword [ebp - 0x4d4], ebx
mov dword [ebp - 0x4c8], eax
call eax
mov dword [ebp - 0x488], eax
cmp eax, 0xffffffff
je 0x45b9db
mov eax, dword [ebx + 0xc]
xor ecx, ecx
add ecx, dword [ebp - 0x460]
xorps xmm0, xmm0
mov edx, dword [ebx + 8]
mov edi, dword [ebx + 0x10]
mov esi, dword [ebp - 0x464]
mov ebx, dword [ebx + 0x14]
mov dword [ebp - 0x4bc], eax
mov dword [ebp - 0x518], eax
mov eax, dword [ebp - 0x45c]
adc eax, 0
mov dword [ebp - 0x4b8], ecx
mov dword [ebp - 0x50c], ecx
xor ecx, ecx
add ecx, dword [ebp - 0x458]
mov dword [ebp - 0x498], eax
mov dword [ebp - 0x508], eax
mov eax, dword [ebp - 0x454]
adc eax, 0
mov dword [ebp - 0x4a4], ecx
mov dword [ebp - 0x504], ecx
xor ecx, ecx
add ecx, dword [ebp - 0x450]
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x500], eax
mov eax, dword [ebp - 0x44c]
adc eax, 0
mov dword [ebp - 0x4c0], edx
mov dword [ebp - 0x51c], edx
add edx, dword [ebp - 0x4d0]
mov dword [ebp - 0x494], ecx
mov dword [ebp - 0x4fc], ecx
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x490], eax
mov dword [ebp - 0x4f8], eax
mov dword [ebp - 0x514], esi
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x4f4], edi
mov dword [ebp - 0x4f0], ebx
movlpd qword [ebp - 0x4ec], xmm0
mov dword [ebp - 0x4e4], 0xffffffff
mov dword [ebp - 0x4e0], 0xffffffff
call fcn.00458540
mov ecx, dword [ebp - 0x4d4]
cdq
push dword [ebp - 0x488]
add dword [ecx + 8], eax
mov eax, dword [ebp - 0x49c]
adc dword [ecx + 0xc], edx
mov edx, dword [ebp - 0x4a8]
mov ecx, dword [ebp - 0x48c]
mov eax, dword [eax + 0x18]
shl ecx, 6
add eax, ecx
mov dword [ebp - 0x48c], ecx
mov ecx, dword [ebp - 0x4c0]
mov dword [eax + edx], ecx
mov ecx, dword [ebp - 0x4bc]
mov dword [eax + edx + 4], ecx
mov ecx, dword [ebp - 0x4b8]
mov dword [eax + edx + 8], esi
mov dword [eax + edx + 0xc], 0
mov dword [eax + edx + 0x10], ecx
mov ecx, dword [ebp - 0x498]
mov dword [eax + edx + 0x14], ecx
mov ecx, dword [ebp - 0x4a4]
mov dword [eax + edx + 0x18], ecx
mov ecx, dword [ebp - 0x4a0]
mov dword [eax + edx + 0x1c], ecx
mov ecx, dword [ebp - 0x494]
mov dword [eax + edx + 0x20], ecx
mov ecx, dword [ebp - 0x490]
mov dword [eax + edx + 0x24], ecx
mov dword [eax + edx + 0x28], edi
mov dword [eax + edx + 0x2c], ebx
mov dword [eax + edx + 0x30], 0
mov dword [eax + edx + 0x34], 0
mov dword [eax + edx + 0x38], 0xffffffff
mov dword [eax + edx + 0x3c], 0xffffffff
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x214]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
push dword [ebp - 0x520]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov edx, dword [ebp - 0x49c]
xor eax, eax
mov ecx, dword [ebp - 0x48c]
mov edi, dword [ebp - 0x4d4]
add ecx, dword [edx + 0x18]
mov dword [ebp - 0x484], ecx
adc eax, dword [edx + 0x1c]
mov ecx, dword [edi + 0x1c]
mov dword [ebp - 0x480], eax
mov eax, dword [edi + 0x18]
mov dword [ebp - 0x46c], eax
mov dword [ebp - 0x468], ecx
mov ecx, dword [edx]
mov eax, ecx
mov edx, dword [edx + 4]
and eax, edx
cmp eax, 0xffffffff
je 0x45b3d1
mov eax, ecx
or eax, edx
je 0x45b3d1
mov ebx, dword [ebp - 0x4a8]
mov eax, dword [ecx + ebx + 0x28]
mov ecx, dword [ecx + ebx + 0x2c]
mov dword [ebp - 0x47c], eax
mov dword [ebp - 0x478], ecx
jmp 0x45b3e2
mov ebx, dword [ebp - 0x4a8]
xorps xmm0, xmm0
movlpd qword [ebp - 0x47c], xmm0
xor edx, edx
mov ecx, 0x4d7f3c
call fcn.00459760
movups xmm0, xmmword [ebp - 0x484]
cdq
mov dword [ebp - 0x474], eax
mov eax, dword [edi + 0x10]
add eax, dword [ebp - 0x4d8]
mov dword [ebp - 0x470], edx
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x474]
movups xmmword [eax + 0x10], xmm0
add dword [edi + 0x10], 0x20
mov esi, dword [ebp - 0x474]
mov ecx, esi
adc dword [edi + 0x14], 0
mov eax, dword [ebp - 0x470]
shld eax, ecx, 6
shl ecx, 6
add dword [edi + 0x18], ecx
adc dword [edi + 0x1c], eax
or esi, dword [ebp - 0x470]
je 0x45b9cd
lea eax, [ebp - 0x464]
xor esi, esi
push eax
push 0x4d7f84
mov dword [ebp - 0x4bc], esi
call dword [ebp - 0x4c8]
mov dword [ebp - 0x49c], ebx
mov ebx, eax
mov dword [ebp - 0x4c0], eax
mov ecx, 0x4deaf4
lea eax, [ebp - 0x438]
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b4a6
test dx, dx
je 0x45b4a2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b4a6
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b480
xor eax, eax
jmp 0x45b4ab
sbb eax, eax
or eax, 1
test eax, eax
je 0x45b9b0
mov ecx, 0x4deaf8
lea eax, [ebp - 0x438]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x45b4e6
test dx, dx
je 0x45b4e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x45b4e6
add eax, 4
add ecx, 4
test dx, dx
jne 0x45b4c0
xor eax, eax
jmp 0x45b4eb
sbb eax, eax
or eax, 1
test eax, eax
je 0x45b9b0
mov ebx, dword [ebp - 0x464]
test bl, 0x10
je 0x45b54f
push dword [ebp - 0x4ac]
mov edx, dword [ebp - 0x4d0]
lea eax, [ebp - 0x484]
push dword [ebp + 0x24]
lea ecx, [ebp - 0x438]
push dword [ebp - 0x4b4]
push dword [ebp - 0x4b0]
push esi
push edi
push eax
push dword [ebp - 0x4a8]
push dword [ebp - 0x4d8]
call fcn.0045b110
add esp, 0x24
test eax, eax
js 0x45baa7
mov ebx, dword [ebp - 0x49c]
jmp 0x45b99a
mov eax, dword [edi + 0xc]
mov ecx, dword [ebp - 0x45c]
mov edx, dword [edi + 8]
mov esi, dword [ebp - 0x448]
mov dword [ebp - 0x518], eax
xor eax, eax
add eax, dword [ebp - 0x460]
mov dword [ebp - 0x50c], eax
adc ecx, 0
mov dword [ebp - 0x514], ebx
xor eax, eax
mov dword [ebp - 0x508], ecx
add eax, dword [ebp - 0x458]
mov ecx, dword [ebp - 0x454]
adc ecx, 0
mov dword [ebp - 0x504], eax
xor eax, eax
mov dword [ebp - 0x500], ecx
add eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0x44c]
adc ecx, 0
mov dword [ebp - 0x51c], edx
xor ebx, ebx
mov dword [ebp - 0x4f8], ecx
add ebx, dword [ebp - 0x444]
mov ecx, dword [edi + 4]
adc esi, 0
mov dword [ebp - 0x4fc], eax
mov eax, dword [edi]
add edx, dword [ebp - 0x4d0]
mov dword [ebp - 0x4f0], ecx
lea ecx, [ebp - 0x438]
mov dword [ebp - 0x510], 0
mov dword [ebp - 0x4f4], eax
mov dword [ebp - 0x488], ebx
mov dword [ebp - 0x490], esi
mov dword [ebp - 0x4ec], ebx
mov dword [ebp - 0x4e8], esi
mov dword [ebp - 0x4e4], 0xffffffff
mov dword [ebp - 0x4e0], 0xffffffff
call fcn.00458540
cdq
add dword [edi + 8], eax
mov eax, ebx
adc dword [edi + 0xc], edx
or eax, esi
je 0x45b959
lea eax, [ebp - 0x438]
push 0x4deb00
push eax
call fcn.0048c5b4
push 2
push 0
mov ebx, eax
push 0
push ebx
mov dword [ebp - 0x4a4], ebx
call fcn.0048b1a1
push ebx
call fcn.0048c3cb
add esp, 0x1c
mov esi, eax
mov edi, edx
mov dword [ebp - 0x4b8], esi
mov dword [ebp - 0x4a0], edi
push 0
push 0
push 0
push ebx
call fcn.0048b1a1
add esp, 0x10
cmp byte [ebp + 0x24], 1
jne 0x45b828
cmp dword [ebp - 0x490], 0
ja 0x45b828
jb 0x45b6b0
mov edx, dword [ebp - 0x488]
cmp edx, 0xa00000
jae 0x45b82e
lea ecx, [ebp - 0x438]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45b6c0
sub ecx, edx
sar ecx, 1
cmp ecx, 4
jbe 0x45b788
lea edi, [ebp - 0x43e]
mov edx, 0x4deb08
lea edi, [edi + ecx*2]
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
mov edx, 0x4deb10
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
mov edx, 0x4deb18
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
mov edx, 0x4deb20
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
mov edx, 0x4deb28
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
mov edx, 0x4deb38
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
mov edx, 0x4deb50
mov ecx, edi
call fcn.00452f20
test eax, eax
je 0x45b828
lea ecx, [edi - 2]
mov edx, str.jpeg
call fcn.00452f20
test eax, eax
je 0x45b828
mov edi, dword [ebp - 0x4a0]
lea eax, [esi + 0x20]
lea eax, [esi + eax*2]
push eax
call fcn.0048b49b
add esp, 4
mov dword [ebp - 0x494], eax
mov edx, ebx
lea ecx, [eax + esi]
mov dword [ebp - 0x48c], ecx
mov ecx, eax
push edi
push esi
call fcn.004531e0
push dword [ebp - 0x48c]
mov ecx, dword [ebp - 0x494]
mov edx, esi
call fcn.0045c1c0
mov ecx, eax
mov dword [ebp - 0x498], eax
shr ecx, 0x1f
add esp, 0xc
mov edx, edi
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [ecx*8 + 0x4df010]
mov ecx, esi
movsd qword [ebp - 0x4cc], xmm0
call fcn.004a2e80
movsd xmm1, qword [ebp - 0x4cc]
divsd xmm1, xmm0
comisd xmm1, xmmword [0x4def88]
jbe 0x45b9ee
push 0
push 0
push 0
push ebx
call fcn.0048b1a1
push dword [ebp - 0x494]
call fcn.0048aa64
add esp, 0x14
mov edx, dword [ebp - 0x488]
mov ecx, dword [ebp - 0x4a0]
xorps xmm0, xmm0
movlpd qword [ebp - 0x4cc], xmm0
test ecx, ecx
jb 0x45ba96
ja 0x45b851
test esi, esi
je 0x45ba96
mov eax, dword [ebp - 0x4c8]
mov ebx, dword [ebp - 0x4cc]
mov dword [ebp - 0x48c], eax
sub esi, ebx
mov edi, ecx
sbb edi, eax
ja 0x45b873
cmp esi, 0x1000000
jbe 0x45b87a
mov esi, 0x1000000
xor edi, edi
add esi, 3
mov ecx, ebx
adc edi, 0
and esi, 0xfffffffc
add ecx, edx
mov edx, eax
mov eax, ecx
mov dword [ebp - 0x494], ecx
adc edx, dword [ebp - 0x490]
and eax, edx
mov dword [ebp - 0x498], edx
cmp eax, 0xffffffff
jne 0x45b8be
push dword [ebp - 0x4a4]
call fcn.0048c3cb
add esp, 4
mov dword [ebp - 0x494], eax
mov dword [ebp - 0x498], edx
mov edx, dword [ebp - 0x4a4]
mov ecx, dword [ebp - 0x4b4]
push edi
push esi
call fcn.004531e0
push dword [ebp - 0x498]
mov edx, dword [ebp - 0x4ac]
push dword [ebp - 0x494]
mov ecx, dword [ebp - 0x4b4]
push edi
push esi
call fcn.0045b030
mov edx, dword [ebp - 0x4b0]
mov ecx, dword [ebp - 0x4b4]
push edi
push esi
call fcn.00453160
mov eax, dword [ebp - 0x48c]
add esp, 0x20
mov ecx, dword [ebp - 0x4a0]
add ebx, esi
mov esi, dword [ebp - 0x4b8]
mov edx, dword [ebp - 0x488]
adc eax, edi
mov dword [ebp - 0x48c], eax
cmp eax, ecx
jb 0x45b863
ja 0x45b93a
cmp ebx, esi
jb 0x45b863
mov esi, dword [ebp - 0x48c]
push dword [ebp - 0x4a4]
call fcn.00483fbe
mov edi, dword [ebp - 0x4d4]
add esp, 4
add dword [edi], ebx
adc dword [edi + 4], esi
mov eax, dword [ebp - 0x46c]
mov ebx, dword [ebp - 0x49c]
movups xmm0, xmmword [ebp - 0x51c]
mov esi, dword [ebp - 0x4bc]
movups xmmword [ebx + eax], xmm0
movups xmm0, xmmword [ebp - 0x50c]
movups xmmword [ebx + eax + 0x10], xmm0
movups xmm0, xmmword [ebp - 0x4fc]
movups xmmword [ebx + eax + 0x20], xmm0
movups xmm0, xmmword [ebp - 0x4ec]
movups xmmword [ebx + eax + 0x30], xmm0
inc esi
add ebx, 0x40
mov dword [ebp - 0x49c], ebx
mov ebx, dword [ebp - 0x4c0]
mov dword [ebp - 0x4bc], esi
lea eax, [ebp - 0x464]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x45b470
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x214]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0047b4e2
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x498]
xor esi, esi
mov edi, dword [ebp - 0x488]
add ebx, 3
mov eax, edi
and ebx, 0xfffffffc
and eax, dword [ebp - 0x490]
cmp eax, 0xffffffff
jne 0x45ba29
push dword [ebp - 0x4b0]
call fcn.0048c3cb
mov edi, eax
add esp, 4
mov eax, edx
mov dword [ebp - 0x490], eax
jmp 0x45ba2f
mov eax, dword [ebp - 0x490]
mov edx, dword [ebp - 0x4ac]
mov ecx, dword [ebp - 0x48c]
push eax
push edi
push esi
push ebx
call fcn.0045b030
mov edx, dword [ebp - 0x4b0]
mov ecx, dword [ebp - 0x48c]
push esi
push ebx
call fcn.00453160
push dword [ebp - 0x490]
mov edx, dword [ebp - 0x4ac]
mov ecx, dword [ebp - 0x48c]
push edi
push esi
push ebx
call fcn.0045b030
push dword [ebp - 0x494]
call fcn.0048aa64
mov eax, dword [ebp - 0x498]
add esp, 0x2c
mov dword [ebp - 0x4e4], eax
mov dword [ebp - 0x4e0], esi
jmp 0x45b940
mov esi, dword [ebp - 0x4c8]
mov ebx, dword [ebp - 0x4cc]
jmp 0x45b940
mov ecx, dword [ebp - 8]
or eax, 0xffffffff
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0047b4e2
mov esp, ebp
pop ebp
ret