Function at 0x402960
Capabilities:
Enumerate files on windows

Disassembly:
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
sub esp, 0xa7c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xa90]
push eax
push ecx
push edx
push edi
xor esi, esi
call fcn.00403250
lea eax, [esp + 0x20]
lea ecx, [esp + 0x30]
push eax
push ecx
push edi
call fcn.00402880
add esp, 0x1c
test eax, eax
je 0x4029b5
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, 0xa
call fcn.0040acb0
mov esi, eax
jmp 0x4029df
push 3
lea edx, [esp + 0x98c]
push edi
push edx
call fcn.0040abb0
lea eax, [esp + 0x28]
lea ecx, [esp + 0x24]
push eax
lea edx, [esp + 0x998]
push ecx
push edx
call fcn.00402900
add esp, 0x18
cmp esi, dword [esp + 0xab4]
jge 0x4029f2
mov ebp, 0x1e
jmp 0x40305b
mov ebp, dword [esp + 0xaa8]
mov esi, 0x41df70
mov eax, ebp
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x402a28
test cl, cl
je 0x402a24
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x402a28
add eax, 2
add esi, 2
test cl, cl
jne 0x402a00
xor eax, eax
jmp 0x402a2d
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x402aa3
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x438]
mov eax, ecx
mov esi, edi
mov edi, edx
push str.images
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x43c]
push ecx
call fcn.00401d00
lea edx, [esp + 0x440]
push edx
push ebp
call fcn.00401f50
lea edi, [esp + 0x448]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0xa90]
mov eax, dword [esp + 0xab8]
lea edx, [esp + 0x230]
cmp eax, 1
jne 0x402e42
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [esp + 0xac8]
and ecx, 3
test eax, eax
rep movsb byte es:[edi], byte [esi]
je 0x402ce5
mov ecx, dword [esp + 0xab0]
mov ebp, dword [esp + 0xa9c]
lea edx, [esp + 0x230]
push ecx
push edx
push ebp
call fcn.00401d80
add esp, 0xc
test eax, eax
jne 0x402c25
mov edi, dword [esp + 0xaa4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jbe 0x402be6
push 0x104
call fcn.0040a420
mov ebx, eax
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x104
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.0040a420
mov edi, dword [esp + 0xaa4]
mov ebp, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.Expanded
mov edx, ecx
mov esi, edi
mov edi, ebx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401d00
lea edi, [esp + 0x240]
or ecx, 0xffffffff
xor eax, eax
push 0x4191fc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebp
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401d00
mov ecx, dword [esp + 0xabc]
push ecx
push ebp
call fcn.00401d00
push ebp
push ebx
call fcn.00401f50
push ebx
call fcn.0040a4d2
push ebp
call fcn.0040a4d2
mov ebp, dword [esp + 0xacc]
add esp, 0x30
mov ebx, dword [esp + 0xa90]
push ebx
push str._sjre
push ebp
call fcn.0040aaee
add esp, 0xc
lea edx, [esp + 0x640]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x402c35
push str.S_ERJRE_MISSING
call fcn.00401b60
push eax
call fcn.00401ba0
add esp, 8
pop edi
pop esi
pop ebp
mov eax, 0x1e
pop ebx
add esp, 0xa7c
ret
mov esi, dword [0x419170]
lea eax, [esp + 0x66c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402c66
test cl, cl
je 0x402c62
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402c66
add eax, 2
add esi, 2
test cl, cl
jne 0x402c42
xor eax, eax
jmp 0x402c6b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x402ca9
mov esi, dword [0x41916c]
lea eax, [esp + 0x66c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x402ca0
test cl, cl
je 0x402c9c
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x402ca0
add eax, 2
add esi, 2
test cl, cl
jne 0x402c7c
xor eax, eax
jmp 0x402ca5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402cc5
lea eax, [esp + 0x640]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x402c12
jmp 0x402c35
lea ecx, [esp + 0x66c]
push ecx
push ebx
push str._sjre_s
push ebp
call fcn.0040aaee
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x402cec
mov ebx, dword [esp + 0xa90]
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x12c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebp, dword [esp + 0xa94]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x334]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x12c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0xab0]
push ecx
push edx
push ebp
call fcn.00401d80
add esp, 0xc
test eax, eax
jne 0x402c25
mov ebx, dword [esp + 0xa98]
or ecx, 0xffffffff
mov edi, ebx
lea edx, [esp + 0x780]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.Expanded
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x784]
push ecx
call fcn.00401d00
lea edx, [esp + 0x134]
lea eax, [esp + 0x788]
push edx
push eax
call fcn.00401f50
lea ecx, [esp + 0x13c]
push 0x4191d8
push ecx
call fcn.00401d00
lea edi, [esp + 0x144]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, dword [esp + 0xac8]
mov edx, ecx
mov esi, edi
mov edi, ebp
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x350]
push ecx
push ebx
call fcn.00401d80
add esp, 0x24
test eax, eax
jne 0x402c25
lea edx, [esp + 0x334]
push 0x4191d8
push edx
call fcn.00401d00
lea edi, [esp + 0x33c]
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x402fb7
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x4191fc
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x234]
push ecx
call fcn.00401d00
mov eax, dword [esp + 0xad0]
add esp, 8
test eax, eax
je 0x402ec1
mov ebx, dword [esp + 0xa9c]
lea edx, [esp + 0x230]
push edx
push ebx
call fcn.00401f50
add esp, 8
test eax, eax
jne 0x402c25
lea edi, [esp + 0x230]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0xa90]
or ecx, 0xffffffff
mov edi, edx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebx, [esp + 0x12c]
mov eax, ecx
mov esi, edi
mov edi, ebx
lea ebx, [esp + 0x334]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push 0x4191d8
rep movsb byte es:[edi], byte [esi]
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea eax, [esp + 0x130]
mov edx, ecx
mov esi, edi
mov edi, ebx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00401d00
lea ecx, [esp + 0x33c]
push 0x4191d8
push ecx
call fcn.00401d00
mov ebx, dword [esp + 0xaa4]
lea edx, [esp + 0x13c]
push edx
push ebx
call fcn.00401f50
add esp, 0x18
test eax, eax
jne 0x402c25
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
mov ebx, dword [esp + 0xa98]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x12c]
push ecx
push ebx
call fcn.00401f50
add esp, 8
test eax, eax
jne 0x402c25
lea edi, [esp + 0x12c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov ebx, dword [esp + 0xaac]
and ecx, 3
test ebx, ebx
rep movsb byte es:[edi], byte [esi]
mov ebp, 0xa
je 0x403054
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x403054
mov edi, dword [esp + 0xa90]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x53c]
mov eax, ecx
mov esi, edi
mov edi, edx
push str.prereq
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x540]
push ecx
call fcn.00401d00
lea edx, [esp + 0x544]
push edx
push ebx
call fcn.00401f50
add esp, 0x10
test eax, eax
jne 0x402c25
lea edi, [esp + 0x53c]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0xa90]
mov ebx, dword [esp + 0xabc]
push ebx
call fcn.00406230
add esp, 4
test eax, eax
jne 0x40309b
mov ecx, dword [esp + 0xac0]
push ecx
call fcn.00406230
add esp, 4
test eax, eax
jne 0x40309b
mov edx, dword [esp + 0xac4]
push edx
call fcn.00406230
add esp, 4
test eax, eax
je 0x4031fe
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x28]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x41923c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
push ecx
call fcn.00401d00
lea edx, [esp + 0x30]
push edx
call fcn.00402950
lea edi, [esp + 0x34]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x890]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push ebx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00406230
add esp, 0x10
test eax, eax
je 0x403131
lea ecx, [esp + 0x28]
push str.jlib
push ecx
call fcn.00401d00
lea edx, [esp + 0x30]
push edx
call fcn.00402950
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.00401f50
add esp, 0x14
mov ebx, dword [esp + 0xac0]
push ebx
call fcn.00406230
add esp, 4
test eax, eax
je 0x403194
lea edi, [esp + 0x884]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x419230
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
push ecx
call fcn.00401d00
lea edx, [esp + 0x30]
push edx
call fcn.00402950
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.00401f50
add esp, 0x14
mov ebx, dword [esp + 0xac4]
push ebx
call fcn.00406230
add esp, 4
test eax, eax
je 0x4031f7
lea edi, [esp + 0x884]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x28]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x419148
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x2c]
push ecx
call fcn.00401d00
lea edx, [esp + 0x30]
push edx
call fcn.00402950
lea eax, [esp + 0x34]
push eax
push ebx
call fcn.00401f50
add esp, 0x14
mov edi, dword [esp + 0xa90]
push edi
call fcn.00402740
add esp, 4
call fcn.00403220
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
add esp, 0xa7c
ret