Function at 0x411ec0
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50fd52
mov eax, dword fs:[0]
push eax
mov eax, 0x427c
call fcn.0050c2d0
mov eax, dword [0x551aa8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
push str.GetPackingFile
mov dword [ebp - 0x427c], edi
call fcn.004172c0
add esp, 4
push 0x1fff
lea eax, [ebp - 0x200f]
push 0
mov esi, 1
push eax
mov dword [ebp - 0x4284], esi
mov byte [ebp - 0x2010], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x426c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov dword [ebp - 4], 0
test byte [0x56c888], 1
jne 0x411f63
or dword [0x56c888], esi
call fcn.0040bb80
push 0x5107b0
call fcn.0050c11f
add esp, 4
lea esi, [ebp - 0x4274]
mov eax, 0x56c808
call fcn.00409930
push eax
lea ecx, [ebp - 0x426c]
mov byte [ebp - 4], 1
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov ecx, esi
mov byte [ebp - 4], 0
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
push str.Resource.pak
lea ecx, [ebp - 0x426c]
call dword [0x511830]
lea ecx, [ebp - 0x4260]
push ecx
lea ecx, [ebp - 0x426c]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer_1]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebx, eax
push 0x544f8c
lea ecx, [ebp - 0x4278]
mov dword [ebp - 0x4274], ebx
call dword [0x511858]
lea ecx, [ebp - 0x4270]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [ebp - 4], 3
test byte [0x56c888], 1
jne 0x412006
or dword [0x56c888], 1
call fcn.0040bb80
push 0x5107b0
call fcn.0050c11f
add esp, 4
lea esi, [ebp - 0x4264]
mov eax, 0x56c808
call fcn.00409930
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x4278]
push ecx
push ecx
mov ecx, eax
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer_1]
push eax
lea edx, [ebp - 0x4270]
push 0x544f90
push edx
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0x14
mov ecx, esi
mov byte [ebp - 4], 3
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
cmp ebx, 0xffffffff
jne 0x412170
push 0
push 0
push 0x2000
lea eax, [ebp - 0x2010]
push eax
push ebx
lea ecx, [ebp - 0x4270]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer_1]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0x2c4
call dword [sym.imp.mfc100u.dll_new]
add esp, 4
mov dword [ebp - 0x4280], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x4120a3
push eax
call fcn.00421d30
mov esi, eax
jmp 0x4120a5
xor esi, esi
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x2010]
mov dword [ebp - 0x4264], esi
call fcn.00422550
mov eax, dword [edi + 0x50]
lea ecx, [ebp - 0x4264]
cmp ecx, eax
jae 0x412154
mov ecx, dword [edi + 0x4c]
lea edx, [ebp - 0x4264]
cmp ecx, edx
ja 0x412154
mov esi, edx
sub esi, ecx
sar esi, 2
cmp eax, dword [edi + 0x54]
jne 0x4120ec
lea eax, [edi + 0x4c]
call fcn.00413e90
mov eax, dword [edi + 0x4c]
lea esi, [eax + esi*4]
mov eax, dword [edi + 0x50]
test eax, eax
je 0x4120fd
mov ecx, dword [esi]
mov dword [eax], ecx
add dword [edi + 0x50], 4
mov eax, dword [ebp - 0x4274]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x4270]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x4278]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x426c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov eax, dword [ebp - 0x4284]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0050bf32
mov esp, ebp
pop ebp
ret
cmp eax, dword [edi + 0x54]
jne 0x412161
lea eax, [edi + 0x4c]
call fcn.00413e90
mov eax, dword [edi + 0x50]
test eax, eax
je 0x4120fd
mov dword [eax], esi
jmp 0x4120fd
test byte [ebp - 0x4260], 0x10
jne 0x412408
lea ecx, [ebp - 0x4264]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [ebp - 4], 6
test byte [0x56c888], 1
jne 0x4121af
or dword [0x56c888], 1
call fcn.0040bb80
push 0x5107b0
call fcn.0050c11f
add esp, 4
lea esi, [ebp - 0x4280]
mov eax, 0x56c808
call fcn.00409930
push eax
lea ecx, [ebp - 0x4264]
mov byte [ebp - 4], 7
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov ecx, esi
mov byte [ebp - 4], 6
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea edx, [ebp - 0x4234]
push edx
lea ecx, [ebp - 0x4264]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
push 0x2c4
call dword [sym.imp.mfc100u.dll_new]
add esp, 4
mov dword [ebp - 0x4268], eax
mov byte [ebp - 4], 8
test eax, eax
je 0x412215
push eax
call fcn.00421d30
mov ebx, eax
jmp 0x412217
xor ebx, ebx
push 0x1fff
lea eax, [ebp - 0x400f]
mov byte [ebp - 4], 6
push 0
push eax
mov dword [ebp - 0x4268], ebx
mov byte [ebp - 0x4010], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0
push 0
push 0x2000
lea ecx, [ebp - 0x4010]
push ecx
push 0xffffffffffffffff
lea ecx, [ebp - 0x4264]
call dword [sym.imp.mfc100u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer_1]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
lea edx, [ebp - 0x4010]
push edx
mov eax, ebx
call fcn.004223d0
test al, al
je 0x412359
mov eax, dword [edi + 0x50]
lea esi, [edi + 0x4c]
lea ecx, [ebp - 0x4268]
cmp ecx, eax
jae 0x4122fd
mov edx, dword [esi]
cmp edx, ecx
ja 0x4122fd
mov ebx, ecx
mov ecx, dword [esi + 8]
sub ebx, edx
sar ebx, 2
cmp eax, ecx
jne 0x4122e4
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4124ac
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x4122e4
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x4122d0
xor ecx, ecx
jmp 0x4122d2
add ecx, edx
cmp ecx, eax
jae 0x4122d8
mov ecx, eax
push ecx
call fcn.004032a0
mov edi, dword [ebp - 0x427c]
mov eax, dword [esi + 4]
mov edx, dword [esi]
lea ebx, [edx + ebx*4]
test eax, eax
je 0x4122f4
mov ecx, dword [ebx]
mov dword [eax], ecx
add dword [esi + 4], 4
jmp 0x4123f8
mov ecx, dword [esi + 8]
cmp eax, ecx
jne 0x412347
mov edx, dword [esi]
sub eax, edx
sar eax, 2
cmp eax, 0x3ffffffe
ja 0x4124ac
sub ecx, edx
inc eax
sar ecx, 2
cmp eax, ecx
jbe 0x412347
mov edx, ecx
shr edx, 1
mov edi, 0x3fffffff
sub edi, edx
cmp edi, ecx
jae 0x412333
xor ecx, ecx
jmp 0x412335
add ecx, edx
cmp ecx, eax
jae 0x41233b
mov ecx, eax
push ecx
call fcn.004032a0
mov edi, dword [ebp - 0x427c]
mov eax, dword [esi + 4]
test eax, eax
je 0x412350
mov dword [eax], ebx
add dword [esi + 4], 4
jmp 0x4123f8
push 0
lea edx, [ebp - 0x4010]
push edx
mov eax, ebx
call fcn.004223d0
test al, al
je 0x4123ce
mov eax, dword [edi + 0x50]
lea ecx, [ebp - 0x4268]
cmp ecx, eax
jae 0x4123b2
mov ecx, dword [edi + 0x4c]
lea edx, [ebp - 0x4268]
cmp ecx, edx
ja 0x4123b2
mov ebx, edx
sub ebx, ecx
sar ebx, 2
cmp eax, dword [edi + 0x54]
jne 0x41239b
lea eax, [edi + 0x4c]
call fcn.00413e90
mov eax, dword [edi + 0x4c]
lea ebx, [eax + ebx*4]
mov eax, dword [edi + 0x50]
test eax, eax
je 0x4123ac
mov ecx, dword [ebx]
mov dword [eax], ecx
add dword [edi + 0x50], 4
jmp 0x4123f8
cmp eax, dword [edi + 0x54]
jne 0x4123bf
lea eax, [edi + 0x4c]
call fcn.00413e90
mov eax, dword [edi + 0x50]
test eax, eax
je 0x4123c8
mov dword [eax], ebx
add dword [edi + 0x50], 4
jmp 0x4123f8
mov edx, dword [ebp - 0x4264]
push edx
push str._s_Packing_File_System_Open_Failed_
xor esi, esi
call fcn.00417260
add esp, 8
test ebx, ebx
je 0x4123f2
mov eax, dword [ebx]
mov edx, dword [eax]
push 1
mov ecx, ebx
call edx
mov dword [ebp - 0x4284], esi
lea ecx, [ebp - 0x4264]
mov byte [ebp - 4], 3
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov ecx, dword [ebp - 0x4274]
lea eax, [ebp - 0x4260]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
je 0x412101
cmp dword [edi + 0x48], 0
je 0x412170
mov eax, dword [edi + 0x4c]
mov edx, dword [edi + 0x50]
sub edx, eax
xor esi, esi
test edx, 0xfffffffc
jle 0x41247e
mov ebx, dword [eax + esi*4]
call fcn.00422190
mov eax, dword [edi + 0x4c]
cmp dword [eax + esi*4], 0
lea eax, [eax + esi*4]
je 0x41246e
mov eax, dword [eax]
test eax, eax
je 0x412464
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push 1
call eax
mov ecx, dword [edi + 0x4c]
mov dword [ecx + esi*4], 0
mov eax, dword [edi + 0x4c]
mov edx, dword [edi + 0x50]
sub edx, eax
inc esi
sar edx, 2
cmp esi, edx
jl 0x412440
lea ecx, [ebp - 0x4270]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x4278]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
lea ecx, [ebp - 0x426c]
call dword [sym.imp.mfc100u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_cla]
mov eax, 4
jmp 0x412138
push str.vector_T__too_long
call dword [0x546e68]
int3