Function at 0x631c3600
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xd4c
mov dword [ebp - 0xd1c], eax
mov dword [ebp - 0xd14], edx
mov dword [ebp - 0xd04], ecx
test edx, edx
je 0x631c39e0
mov eax, dword [ebp - 0xd04]
test eax, eax
je 0x631c37b0
lea eax, [ebp - 0xc90]
cmp dword [ebp - 0xd04], 1
mov dword [ebp - 0xd10], eax
lea eax, [ebp - 0x268]
mov dword [ebp - 0xcfc], eax
je 0x631c3a50
mov eax, dword [ebp - 0xcfc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd10]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindFirstFileW]
mov dword [ebp - 0xd0c], 0
mov dword [ebp - 0xd00], eax
sub esp, 8
cmp eax, 0xffffffff
je 0x631c394c
lea ebx, [ebp - 0x23c]
jmp 0x631c372c
cmp dword [ebp - 0xd04], 1
je 0x631c3830
mov esi, dword [ebp - 0xd10]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], ebx
mov dword [esp + 8], str._s_s
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0x104
mov dword [esp], esi
call sym._swprintf_1
mov eax, dword [ebp - 0xd04]
mov dword [esp + 4], esi
mov edx, dword [ebp - 0xd14]
lea ecx, [eax + 1]
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [ebp - 0xd1c]
call sym._enum_gac_assemblies
mov dword [ebp - 0xd0c], eax
test eax, eax
js 0x631c393a
mov eax, dword [ebp - 0xcfc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xd00]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindNextFileW]
sub esp, 8
test eax, eax
je 0x631c393a
mov dword [esp + 4], 0x631cb7d4
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
je 0x631c3708
mov dword [esp + 4], 0x631cb7cc
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_lstrcmpW]
sub esp, 8
test eax, eax
je 0x631c3708
mov eax, dword [ebp - 0xd04]
test eax, eax
jne 0x631c36a0
mov eax, dword [ebp - 0xd14]
mov ecx, ebx
test eax, eax
je 0x631c3790
mov eax, dword [ebp - 0xd10]
mov dword [esp + 4], 0x5c
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcsrchr]
lea ecx, [eax + 2]
xor eax, eax
lea esi, [esi]
movzx edx, word [ecx + eax]
add eax, 2
mov word [eax + 0x631ceffe], dx
test dx, dx
jne 0x631c3798
jmp 0x631c36ad
mov esi, dword [ebp - 0xd14]
lea ebx, [ebp - 0x268]
lea edx, [ebp - 0xce0]
xor edi, edi
mov dword [ebp - 0xce0], 0x104
mov eax, dword [esi]
mov word [ebp - 0x268], di
mov dword [ebp - 0xcfc], ebx
mov dword [esp + 8], ebx
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [eax + 0x20]
sub esp, 0xc
test eax, eax
js 0x631c3a40
mov dword [esp + 0x10], ebx
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], 0x631cb708
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc90]
mov dword [esp], eax
mov dword [ebp - 0xd10], eax
call sym._swprintf_1
jmp 0x631c3659
mov eax, dword [ebp + 0xc]
lea esi, [ebp - 0x880]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0x631cf000
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._s_s_s.dll
mov dword [esp + 4], 0x104
mov dword [esp], esi
call sym._swprintf_1
mov dword [esp + 4], 0x631cb7a8
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_wcsstr]
mov edi, dword [ebp + 8]
xor ecx, ecx
mov word [eax], cx
lea edx, [eax + 4]
test edi, edi
jne 0x631c3960
mov edi, ebx
mov dword [esp + 0x10], edi
lea edi, [ebp - 0xa88]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0x631cf000
mov dword [esp + 8], str._s__Version_s__Cultureneutral__PublicKeyToken_s
mov dword [esp + 4], 0x104
mov dword [esp], edi
call sym._swprintf_1
mov dword [esp], 0xc
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0xd20], eax
test eax, eax
je 0x631c3ff8
add eax, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], edi
mov dword [esp], eax
call sym.fusion.dll_CreateAssemblyNameObject
mov dword [ebp - 0xd0c], eax
sub esp, 0x10
test eax, eax
js 0x631c3fe4
mov dword [esp + 4], esi
mov esi, dword [ebp - 0xd20]
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym._IAssemblyName_SetPath
mov dword [ebp - 0xd0c], eax
test eax, eax
jns 0x631c3bd0
mov eax, dword [esi + 8]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0xd00]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FindClose]
sub esp, 4
mov eax, dword [ebp - 0xd0c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [ebp + 8]
movzx eax, word [ebp - 0x23c]
cmp word [edi], 0
je 0x631c3f47
lea esi, [esi]
add edi, 2
cmp word [edi], 0
jne 0x631c3978
sub edi, dword [ebp + 8]
mov ecx, edi
sar ecx, 1
test ax, ax
je 0x631c3f59
mov eax, ebx
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x631c3998
sub eax, ebx
cmp edi, eax
ja 0x631c3885
mov eax, dword [ebp + 8]
mov dword [ebp - 0xd08], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll__wcsnicmp]
mov edx, dword [ebp - 0xd08]
test eax, eax
jne 0x631c3885
add edi, ebx
jmp 0x631c3887
mov eax, dword [ebp + 8]
test eax, eax
je 0x631c3ea0
cmp ecx, 1
jne 0x631c3ea0
mov eax, dword [ebp + 8]
mov dword [esp + 8], 0x631cb720
mov dword [esp + 4], 0x104
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc90]
mov dword [esp], eax
mov dword [ebp - 0xd10], eax
call sym._swprintf_1
lea eax, [ebp - 0x268]
mov dword [ebp - 0xcfc], eax
jmp 0x631c3659
mov dword [esp + 0x10], 0x631cb704
jmp 0x631c37fa
mov ebx, dword [ebp - 0xd14]
lea edx, [ebp - 0xcd8]
mov edi, 0x631cb704
mov dword [ebp - 0xcd8], 2
mov eax, dword [ebx]
mov dword [esp + 0xc], edx
lea edx, [ebp - 0xcf0]
mov dword [esp + 8], edx
mov dword [esp + 4], 4
mov dword [esp], ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
lea edx, [ebp - 0xcb4]
mov dword [ebp - 0xcb4], 2
sub esp, 0x10
mov dword [esp + 0xc], edx
lea edx, [ebp - 0xcee]
mov dword [esp + 8], edx
mov dword [esp + 4], 5
mov dword [esp], ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
lea edx, [ebp - 0xa88]
mov dword [ebp - 0xa88], 2
sub esp, 0x10
mov dword [esp + 0xc], edx
lea edx, [ebp - 0xcec]
mov dword [esp + 8], edx
mov dword [esp + 4], 6
mov dword [esp], ebx
call dword [eax + 0x10]
mov eax, dword [ebx]
lea edx, [ebp - 0x880]
mov dword [ebp - 0x880], 2
sub esp, 0x10
mov dword [esp + 0xc], edx
lea edx, [ebp - 0xce8]
mov dword [esp + 8], edx
mov dword [esp + 4], 7
mov dword [esp], ebx
call dword [eax + 0x10]
mov esi, dword [ebp - 0xcd8]
sub esp, 0x10
test esi, esi
je 0x631c3b37
mov ebx, dword [ebp - 0xcb4]
test ebx, ebx
jne 0x631c3edc
mov esi, dword [ebp - 0xd14]
lea edx, [ebp - 0xce0]
lea ebx, [ebp - 0x678]
mov dword [ebp - 0xce0], 8
mov eax, dword [esi]
mov dword [esp], esi
mov esi, 0x631cb704
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], 1
call dword [eax + 0x10]
mov eax, dword [ebp - 0xce0]
sub esp, 0x10
test eax, eax
jne 0x631c3f60
mov eax, dword [ebp + 8]
test eax, eax
je 0x631c3fac
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], str._s_s_s___s
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc90]
mov dword [esp + 4], 0x104
mov dword [esp], eax
mov dword [ebp - 0xd10], eax
call sym._swprintf_1
jmp 0x631c3659
mov eax, dword [ebp - 0xd1c]
mov edi, dword [eax]
mov dword [ebp - 0xd08], edi
cmp eax, edi
je 0x631c3e54
lea eax, [ebp - 0xcec]
mov dword [ebp - 0xd28], eax
lea eax, [ebp - 0x678]
mov dword [ebp - 0xd2c], eax
lea eax, [ebp - 0x470]
mov dword [ebp - 0xd24], eax
lea esi, [esi]
mov eax, dword [ebp - 0xd08]
mov edi, dword [ebp - 0xd28]
mov dword [ebp - 0xcec], 0x208
mov esi, dword [ebp - 0xd2c]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], 3
mov dword [esp], eax
call dword [edx + 0x10]
mov eax, dword [ebp - 0xd20]
mov ecx, dword [ebp - 0xd24]
mov dword [ebp - 0xcec], 0x208
sub esp, 0x10
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 4], 3
mov dword [esp], eax
call dword [edx + 0x10]
mov ecx, dword [ebp - 0xd24]
sub esp, 0x10
mov dword [esp + 4], ecx
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x631c3e78
mov esi, 4
mov eax, dword [ebp - 0xd08]
lea edx, [ebp - 0xcf0]
mov dword [ebp - 0xcec], 2
mov eax, dword [eax + 8]
mov ecx, dword [eax]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [ecx + 0x10]
mov eax, dword [ebp - 0xd20]
lea edx, [ebp - 0xcee]
mov dword [ebp - 0xcec], 2
sub esp, 0x10
mov eax, dword [eax + 8]
mov ecx, dword [eax]
mov dword [esp + 0xc], edi
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [ecx + 0x10]
movzx eax, word [ebp - 0xcee]
sub esp, 0x10
cmp word [ebp - 0xcf0], ax
jb 0x631c3e3a
ja 0x631c3e7c
inc esi
cmp esi, 8
jne 0x631c3c9e
mov eax, dword [ebp - 0xd08]
mov edi, dword [ebp - 0xd28]
mov dword [ebp - 0xcec], 8
lea esi, [ebp - 0xce8]
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [edx + 0x10]
mov eax, dword [ebp - 0xd20]
mov dword [ebp - 0xcec], 8
sub esp, 0x10
mov eax, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 0xc], edi
lea edi, [ebp - 0xce0]
mov dword [esp + 8], edi
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [edx + 0x10]
lea ecx, [ebp - 0xcd8]
xor eax, eax
mov dword [ebp - 0xd18], ecx
sub esp, 0x10
lea esi, [esi]
movzx edx, byte [esi + eax]
mov ecx, edx
and edx, 0xf
shr cl, 4
movzx edx, word [edx + edx + str.0123456789abcdef_s_s___s]
movzx edi, cl
mov ecx, dword [ebp - 0xd18]
movzx edi, word [edi + edi + str.0123456789abcdef_s_s___s]
mov word [ecx + eax*4 + 2], dx
mov word [ecx + eax*4], di
inc eax
cmp eax, 8
jne 0x631c3da0
xor edx, edx
xor eax, eax
lea edi, [ebp - 0xcb4]
mov word [ebp - 0xcb8], dx
lea esi, [esi]
movzx edx, byte [ebp + eax - 0xce0]
mov ecx, edx
and edx, 0xf
shr cl, 4
movzx edx, word [edx + edx + str.0123456789abcdef_s_s___s]
movzx esi, cl
movzx esi, word [esi + esi + str.0123456789abcdef_s_s___s]
mov word [edi + eax*4 + 2], dx
mov word [edi + eax*4], si
inc eax
cmp eax, 8
jne 0x631c3de8
mov ecx, dword [ebp - 0xd18]
xor eax, eax
mov dword [esp + 4], edi
mov word [ebp - 0xc94], ax
mov dword [esp], ecx
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
jne 0x631c3e78
mov eax, dword [ebp - 0xd08]
mov eax, dword [eax]
mov dword [ebp - 0xd08], eax
cmp dword [ebp - 0xd1c], eax
jne 0x631c3c10
mov esi, dword [ebp - 0xd1c]
mov edi, dword [ebp - 0xd20]
mov eax, dword [esi + 4]
mov dword [edi], esi
mov dword [edi + 4], eax
mov dword [eax], edi
mov dword [esi + 4], edi
jmp 0x631c3708
test eax, eax
jle 0x631c3e3a
mov esi, dword [ebp - 0xd20]
mov edi, dword [ebp - 0xd08]
mov dword [esi], edi
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov dword [eax], esi
mov dword [edi + 4], esi
jmp 0x631c3708
mov eax, dword [ebp + 0xc]
mov dword [esp + 8], str._s
mov dword [esp + 4], 0x104
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc90]
mov dword [esp], eax
mov dword [ebp - 0xd10], eax
call sym._swprintf_1
lea eax, [ebp - 0x268]
mov dword [ebp - 0xcfc], eax
jmp 0x631c3659
mov ecx, dword [ebp - 0xa88]
test ecx, ecx
je 0x631c3b37
mov edx, dword [ebp - 0x880]
test edx, edx
je 0x631c3b37
movzx eax, word [ebp - 0xce8]
mov edi, dword [ebp - 0xcfc]
mov dword [esp + 8], str._u._u._u._u
mov dword [esp + 4], 0x18
mov dword [esp + 0x18], eax
movzx eax, word [ebp - 0xcec]
mov dword [esp], edi
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0xcee]
mov dword [esp + 0x10], eax
movzx eax, word [ebp - 0xcf0]
mov dword [esp + 0xc], eax
call sym._swprintf_1
jmp 0x631c3b37
xor edi, edi
xor ecx, ecx
test ax, ax
jne 0x631c3991
jmp 0x631c39ab
xor eax, eax
jmp 0x631c39a3
xor eax, eax
lea esi, [ebp - 0x470]
lea esi, [esi]
nop
movzx edx, byte [ebx + eax]
mov ecx, edx
and edx, 0xf
shr cl, 4
movzx edx, word [edx + edx + str.0123456789abcdef_s_s___s]
movzx ecx, cl
movzx ecx, word [ecx + ecx + str.0123456789abcdef_s_s___s]
mov word [esi + eax*4 + 2], dx
mov word [esi + eax*4], cx
inc eax
cmp eax, 8
jne 0x631c3f70
xor eax, eax
mov word [ebp - 0x450], ax
jmp 0x631c3b81
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], eax
lea eax, [ebp - 0xc90]
mov dword [esp + 8], 0x631cb6c0
mov dword [esp + 4], 0x104
mov dword [esp], eax
mov dword [ebp - 0xd10], eax
call sym._swprintf_1
jmp 0x631c3659
mov eax, dword [ebp - 0xd20]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
jmp 0x631c393a
mov dword [ebp - 0xd0c], 0x8007000e
jmp 0x631c393a