Function at 0x412200
Capabilities:
Check if file exists
Enumerate files on windows
Enumerate files recursively

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff0
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
lea ebx, [ebp - 0x5ac]
sub esp, 0x5fc
mov edx, dword [edi]
mov dword [ebp - 0x5c4], ecx
mov dword [ebp - 0x594], 0x4f3670
mov dword [ebp - 0x590], 0x4f4bd8
mov dword [ebp - 0x588], 0x412fdd
mov dword [ebp - 0x584], esp
mov dword [ebp - 0x5f0], edx
lea edx, [ebp - 0x18]
mov dword [ebp - 0x58c], edx
mov dword [esp], ebx
call fcn.00458010
mov eax, dword [ebp - 0x5c4]
mov edx, dword [eax + 0x78]
mov eax, dword [eax + 0x7c]
mov dword [ebp - 0x5b0], eax
sub eax, edx
sar eax, 3
imul eax, eax, 0xaaaaaaab
mov dword [ebp - 0x5bc], eax
test eax, eax
mov eax, dword [ebp - 0x5f0]
mov eax, dword [eax]
mov dword [ebp - 0x5b8], eax
je 0x412306
mov dword [ebp - 0x5b4], edx
mov dword [ebp - 0x5b0], 0
jmp 0x4122cc
add dword [ebp - 0x5b0], 1
add dword [ebp - 0x5b4], 0x18
mov ebx, dword [ebp - 0x5b0]
cmp ebx, dword [ebp - 0x5bc]
je 0x412306
mov eax, dword [ebp - 0x5b8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5b4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.00406c50
test al, al
je 0x4122b0
lea eax, [ebp - 0x5ac]
mov dword [esp], eax
call fcn.004580a0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret 4
mov edx, dword [ebp - 0x5f0]
lea eax, [ebp - 0x560]
mov esi, dword [ebp - 0x5b8]
lea ecx, [ebp - 0x568]
mov dword [ebp - 0x568], eax
mov eax, dword [edx + 4]
mov dword [esp], esi
add eax, esi
mov dword [esp + 4], eax
mov dword [ebp - 0x5a8], 0xffffffff
call fcn.00401570
mov edx, dword [ebp - 0x564]
sub esp, 8
mov eax, dword [ebp - 0x568]
test edx, edx
jne 0x412f2b
mov dword [esp + 4], eax
lea eax, [ebp - 0x550]
mov dword [esp + 8], 0x5c
mov dword [esp], eax
mov dword [ebp - 0x5a8], 1
call fcn.00403260
lea eax, [ebp - 0x4c0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x550]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 2
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x5f4], eax
mov eax, dword [ebp - 0x550]
lea edx, [ebp - 0x548]
sub esp, 8
cmp eax, edx
je 0x4123be
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x5c4]
add eax, 0x130
cmp dword [ebp - 0x5f4], 0xffffffff
mov dword [ebp - 0x5d4], eax
je 0x413006
lea esi, [esi]
lea eax, [ebp - 0x550]
mov dword [esp + 4], eax
lea eax, [ebp - 0x4ac]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 1
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
sub esp, 8
test eax, eax
mov dword [ebp - 0x5e0], 0
mov dword [ebp - 0x5dc], 0
je 0x412495
movzx ecx, word [ebp - 0x550]
mov ebx, 0x540be400
mov eax, ebx
mul ecx
lea esi, [ecx + ecx]
mov ecx, eax
movzx eax, word [ebp - 0x54e]
mov ebx, edx
mov edx, 0x5f5e100
add ebx, esi
mul edx
add ecx, eax
movzx eax, word [ebp - 0x54a]
adc ebx, edx
imul eax, eax, 0xf4240
cdq
add ecx, eax
movzx eax, word [ebp - 0x548]
adc ebx, edx
imul eax, eax, 0x2710
cdq
add ecx, eax
movzx eax, word [ebp - 0x546]
adc ebx, edx
imul eax, eax, 0x64
cdq
add eax, ecx
movzx ecx, word [ebp - 0x544]
adc edx, ebx
xor ebx, ebx
add eax, ecx
adc edx, ebx
mov dword [ebp - 0x5e0], eax
mov dword [ebp - 0x5dc], edx
mov eax, dword [ebp - 0x4a0]
mov dword [ebp - 0x5d0], eax
mov eax, dword [ebp - 0x4a4]
mov dword [ebp - 0x5c8], eax
mov eax, dword [ebp - 0x4c0]
mov dword [ebp - 0x5b0], eax
lea eax, [ebp - 0x494]
mov dword [esp + 4], eax
lea eax, [ebp - 0x538]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 1
call fcn.00402d90
mov edx, dword [ebp - 0x538]
lea esi, [ebp - 0x530]
mov eax, dword [ebp - 0x568]
mov dword [ebp - 0x5ec], esi
cmp edx, esi
je 0x412eff
lea ebx, [ebp - 0x560]
cmp eax, ebx
je 0x412eb4
mov dword [ebp - 0x568], edx
mov edx, dword [ebp - 0x534]
test eax, eax
mov ecx, dword [ebp - 0x560]
mov dword [ebp - 0x564], edx
mov edx, dword [ebp - 0x530]
mov dword [ebp - 0x560], edx
je 0x412ed2
mov dword [ebp - 0x538], eax
mov dword [ebp - 0x530], ecx
mov dword [ebp - 0x534], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x538]
cmp eax, dword [ebp - 0x5ec]
je 0x412564
mov dword [esp], eax
call fcn.004f28f0
test byte [ebp - 0x4bf], 4
je 0x412bbe
mov eax, dword [ebp - 0x5f0]
mov dword [ebp - 0x5e0], 0
mov dword [ebp - 0x5dc], 0
mov ebx, dword [eax]
movzx eax, byte [ebx]
test al, al
je 0x412c15
mov edx, 1
xor ecx, ecx
mov esi, ebx
cmp al, 0x5c
sete bl
cmp al, 0x2f
sete al
or bl, al
cmovne ecx, edx
add edx, 1
movzx eax, byte [esi + edx - 1]
test al, al
jne 0x4125a1
mov ebx, esi
mov eax, dword [ebp - 0x5f0]
lea edx, [ebp - 0x518]
mov dword [ebp - 0x520], edx
mov eax, dword [eax + 4]
mov dword [esp], ebx
cmp eax, ecx
cmova eax, ecx
lea ecx, [ebp - 0x520]
add eax, ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x5a8], 1
call fcn.00401570
mov eax, dword [ebp - 0x564]
sub esp, 8
lea ecx, [ebp - 0x520]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x568]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 3
call fcn.004daf70
mov ebx, dword [ebp - 0x5ec]
lea edx, [eax + 8]
sub esp, 8
mov dword [ebp - 0x538], ebx
mov ecx, dword [eax]
cmp ecx, edx
je 0x412eef
mov dword [ebp - 0x538], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x530], ecx
mov ecx, dword [eax + 4]
lea ebx, [ebp - 0x518]
mov dword [ebp - 0x534], ecx
mov dword [eax], edx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov eax, dword [ebp - 0x520]
cmp eax, ebx
je 0x41267a
mov dword [esp], eax
call fcn.004f28f0
mov edx, dword [ebp - 0x5dc]
mov eax, dword [ebp - 0x5e0]
mov ebx, edx
or ebx, eax
je 0x412877
test byte [ebp - 0x4c0], 0x10
je 0x4126d0
cmp dword [ebp - 0x534], 0x7fffffff
je 0x413128
lea ecx, [ebp - 0x538]
mov dword [esp + 4], 1
mov dword [esp], 0x4f9945
mov dword [ebp - 0x5a8], 4
call fcn.004daf70
sub esp, 8
lea eax, [ebp - 0x500]
mov edx, dword [ebp - 0x534]
lea ecx, [ebp - 0x508]
mov dword [ebp - 0x508], eax
mov eax, dword [ebp - 0x538]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x5a8], 4
call fcn.00401570
mov eax, dword [ebp - 0x5b0]
xor edx, edx
sub esp, 8
shld edx, eax, 8
shl eax, 8
add eax, 0x77
mov dword [ebp - 0x5e8], eax
mov eax, dword [ebp - 0x508]
adc edx, 0
mov dword [ebp - 0x5e4], edx
mov dword [ebp - 0x5bc], eax
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x5c4]
call fcn.00407710
sub esp, 8
test al, al
jne 0x412c1c
mov eax, dword [ebp - 0x5bc]
lea edx, [ebp - 0x500]
cmp eax, edx
je 0x41276f
mov dword [esp], eax
call fcn.004f28f0
test byte [ebp - 0x4c0], 0x10
jne 0x412d9e
mov eax, dword [0x50c024]
test eax, eax
mov dword [ebp - 0x5b0], eax
je 0x412877
mov edx, dword [0x50c020]
test edx, edx
je 0x412877
mov dword [esp + 8], 0x5c
mov eax, dword [ebp - 0x538]
lea edx, [ebp - 0x4d8]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [ebp - 0x5a8], 4
call fcn.00403260
lea esi, [ebp - 0x270]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x5d8], esi
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x4d8]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 7
call dword [ebp - 0x5b0]
mov dword [ebp - 0x5c8], eax
mov eax, dword [ebp - 0x4d8]
lea esi, [ebp - 0x4d0]
sub esp, 0x10
cmp eax, esi
je 0x412821
mov dword [esp], eax
call fcn.004f28f0
cmp dword [ebp - 0x5c8], 0xffffffff
je 0x412877
lea esi, [esi]
mov eax, dword [ebp - 0x5d8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5c8]
mov dword [esp], eax
mov eax, dword [0x50c020]
mov dword [ebp - 0x5a8], 4
call eax
sub esp, 8
test eax, eax
jne 0x4128c4
mov eax, dword [ebp - 0x5c8]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 4
call dword [sym.imp.KERNEL32.dll_FindClose]
sub esp, 4
lea eax, [ebp - 0x4c0]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5f4]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 4
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
sub esp, 8
test eax, eax
je 0x412f71
mov eax, dword [ebp - 0x538]
cmp eax, dword [ebp - 0x5ec]
je 0x4123e0
mov dword [esp], eax
call fcn.004f28f0
jmp 0x4123e0
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0x26c]
mov dword [ebp - 0x5d0], eax
lea eax, [ebp - 0x268]
mov dword [ebp - 0x5cc], edx
mov dword [esp + 4], eax
lea eax, [ebp - 0x4f0]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 4
call fcn.00402d90
mov eax, dword [ebp - 0x534]
lea ecx, [ebp - 0x4f0]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x538]
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [esp + 8], eax
mov dword [ebp - 0x5a8], 8
call fcn.004d8dc0
lea ebx, [ebp - 0x4d0]
lea edx, [eax + 8]
sub esp, 0x10
mov dword [ebp - 0x4d8], ebx
mov ecx, dword [eax]
cmp ecx, edx
je 0x412ba0
mov dword [ebp - 0x4d8], ecx
mov ecx, dword [eax + 8]
mov dword [ebp - 0x4d0], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 0x4d4], ecx
mov dword [eax], edx
mov dword [eax + 4], 0
mov byte [eax + 8], 0
mov eax, dword [ebp - 0x4d8]
mov dword [ebp - 0x5bc], eax
mov dword [esp + 4], 0
mov dword [esp], eax
mov ecx, dword [ebp - 0x5c4]
call fcn.00407710
sub esp, 8
test al, al
jne 0x4129e0
mov eax, dword [ebp - 0x5bc]
lea ebx, [ebp - 0x4d0]
cmp eax, ebx
je 0x4129b8
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x4f0]
lea edx, [ebp - 0x4e8]
cmp eax, edx
je 0x412830
mov dword [esp], eax
call fcn.004f28f0
jmp 0x412830
mov eax, dword [ebp - 0x5c4]
mov eax, dword [eax + 0x134]
test eax, eax
je 0x412bb0
mov edx, dword [ebp - 0x4d4]
mov ebx, dword [ebp - 0x5d4]
mov dword [ebp - 0x5b0], eax
mov dword [ebp - 0x5b4], edx
mov dword [ebp - 0x5c0], ebx
jmp 0x412a54
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x412a72
test eax, eax
mov eax, dword [ebp - 0x5b0]
js 0x412a88
mov dword [ebp - 0x5c0], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x5b0], eax
mov eax, dword [ebp - 0x5b0]
test eax, eax
je 0x412a9b
mov esi, dword [ebp - 0x5b0]
mov edi, dword [ebp - 0x5b4]
mov eax, dword [esi + 0x14]
cmp edi, eax
mov dword [ebp - 0x5b8], eax
cmovbe eax, edi
test eax, eax
jne 0x412a14
mov eax, dword [ebp - 0x5b8]
sub eax, dword [ebp - 0x5b4]
test eax, eax
mov eax, dword [ebp - 0x5b0]
jns 0x412a3b
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x5b0], eax
mov eax, dword [ebp - 0x5b0]
test eax, eax
jne 0x412a54
mov edx, dword [ebp - 0x5c0]
cmp dword [ebp - 0x5d4], edx
je 0x412b50
mov eax, dword [edx + 0x14]
mov esi, dword [ebp - 0x5b4]
cmp esi, eax
mov dword [ebp - 0x5b0], eax
cmovbe eax, esi
test eax, eax
je 0x412b40
mov dword [esp + 8], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x412b40
test eax, eax
js 0x412b50
mov eax, dword [ebp - 0x5c0]
mov edx, dword [ebp - 0x5c4]
movq xmm1, qword [ebp - 0x5e0]
movq xmm2, qword [ebp - 0x5d0]
mov ecx, dword [ebp - 0x5e8]
movq qword [eax + 0x28], xmm1
mov ebx, dword [ebp - 0x5e4]
cmp byte [edx + 0x74], 0
movq qword [eax + 0x30], xmm2
je 0x412b22
xor ecx, ecx
xor ebx, ebx
mov dword [eax + 0x38], ecx
mov dword [eax + 0x3c], ebx
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
jmp 0x4129a0
mov eax, dword [ebp - 0x5b4]
sub eax, dword [ebp - 0x5b0]
test eax, eax
jns 0x412ae6
lea eax, [ebp - 0x4d8]
mov dword [ebp - 0x56c], eax
mov eax, dword [ebp - 0x5c4]
lea ecx, [eax + 0x12c]
lea eax, [ebp - 0x56c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5c0]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 9
call fcn.0040acc0
mov ebx, dword [ebp - 0x4d8]
sub esp, 8
mov dword [ebp - 0x5bc], ebx
jmp 0x412aec
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x4d0], xmm0
jmp 0x412961
mov eax, dword [ebp - 0x5d4]
mov dword [ebp - 0x5c0], eax
jmp 0x412b50
lea ecx, [ebp - 0x568]
mov dword [esp], 0x4fa284
mov dword [ebp - 0x5a8], 1
call fcn.00473d20
sub esp, 4
test eax, eax
je 0x412571
lea ecx, [ebp - 0x568]
mov dword [esp], 0x4fa286
call fcn.00473d20
sub esp, 4
test eax, eax
je 0x412571
mov eax, dword [ebp - 0x5f0]
mov ebx, dword [eax]
movzx eax, byte [ebx]
test al, al
jne 0x412598
xor ecx, ecx
jmp 0x4125be
mov eax, dword [ebp - 0x5c4]
mov eax, dword [eax + 0x134]
test eax, eax
je 0x412f60
mov edx, dword [ebp - 0x504]
mov ebx, dword [ebp - 0x5d4]
mov dword [ebp - 0x5b0], eax
mov dword [ebp - 0x5b4], edx
mov dword [ebp - 0x5c0], ebx
jmp 0x412c90
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x412cb2
test eax, eax
mov eax, dword [ebp - 0x5b0]
js 0x412cc8
mov dword [ebp - 0x5c0], eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x5b0], eax
mov ebx, dword [ebp - 0x5b0]
test ebx, ebx
je 0x412cdb
mov esi, dword [ebp - 0x5b0]
mov ebx, dword [ebp - 0x5b4]
mov eax, dword [esi + 0x14]
cmp eax, ebx
mov edx, eax
mov dword [ebp - 0x5b8], eax
mov eax, ebx
cmovbe eax, edx
test eax, eax
jne 0x412c50
mov eax, dword [ebp - 0x5b8]
sub eax, dword [ebp - 0x5b4]
test eax, eax
mov eax, dword [ebp - 0x5b0]
jns 0x412c77
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x5b0], eax
mov ebx, dword [ebp - 0x5b0]
test ebx, ebx
jne 0x412c90
mov eax, dword [ebp - 0x5c0]
mov esi, dword [ebp - 0x5d4]
cmp eax, esi
je 0x412e64
mov ebx, dword [ebp - 0x5b4]
mov esi, eax
mov eax, dword [eax + 0x14]
cmp eax, ebx
mov edx, eax
mov dword [ebp - 0x5b0], eax
mov eax, ebx
cmovbe eax, edx
test eax, eax
je 0x412e50
mov dword [esp + 8], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x412e50
test eax, eax
js 0x412e64
mov esi, dword [ebp - 0x5c0]
mov eax, dword [ebp - 0x5c8]
mov ecx, dword [ebp - 0x5d0]
xor ebx, ebx
movq xmm3, qword [ebp - 0x5e0]
movq qword [esi + 0x28], xmm3
mov edx, eax
xor eax, eax
add ecx, eax
mov eax, dword [ebp - 0x5e8]
adc ebx, edx
mov dword [esi + 0x30], ecx
mov edx, dword [ebp - 0x5e4]
mov dword [esi + 0x34], ebx
mov ebx, dword [ebp - 0x5c4]
cmp byte [ebx + 0x74], 0
je 0x412d85
xor eax, eax
xor edx, edx
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], edx
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
jmp 0x412757
cmp dword [ebp - 0x534], 0x7fffffff
je 0x41313e
lea ecx, [ebp - 0x538]
mov dword [esp + 4], 1
mov dword [esp], 0x4fa289
mov dword [ebp - 0x5a8], 4
call fcn.004daf70
lea eax, [ebp - 0x270]
mov edx, dword [ebp - 0x534]
sub esp, 8
mov esi, eax
lea eax, [ebp - 0x268]
mov ecx, esi
mov dword [ebp - 0x270], eax
mov eax, dword [ebp - 0x538]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [ebp - 0x5d8], esi
call fcn.00401570
mov eax, dword [ebp - 0x5d8]
sub esp, 8
mov dword [esp], eax
mov ecx, dword [ebp - 0x5c4]
mov dword [ebp - 0x5a8], 6
call fcn.00412200
mov eax, dword [ebp - 0x270]
lea edx, [ebp - 0x268]
sub esp, 4
cmp eax, edx
je 0x412877
mov dword [esp], eax
call fcn.004f28f0
jmp 0x412877
mov eax, dword [ebp - 0x5b4]
sub eax, dword [ebp - 0x5b0]
test eax, eax
jns 0x412d3a
lea eax, [ebp - 0x508]
mov dword [ebp - 0x570], eax
mov eax, dword [ebp - 0x5c4]
lea ecx, [eax + 0x12c]
lea eax, [ebp - 0x570]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x5c0]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 5
call fcn.0040acc0
mov esi, eax
mov eax, dword [ebp - 0x508]
sub esp, 8
mov dword [ebp - 0x5bc], eax
jmp 0x412d40
mov eax, dword [ebp - 0x534]
mov dword [ebp - 0x568], edx
mov dword [ebp - 0x564], eax
mov eax, dword [ebp - 0x530]
mov dword [ebp - 0x560], eax
mov eax, dword [ebp - 0x5ec]
mov dword [ebp - 0x538], eax
lea eax, [ebp - 0x530]
mov dword [ebp - 0x5ec], eax
jmp 0x412541
movups xmm0, xmmword [eax + 8]
movups xmmword [ebp - 0x530], xmm0
jmp 0x41264c
lea eax, [ebp - 0x538]
lea ecx, [ebp - 0x568]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 0
call fcn.004db010
mov eax, dword [ebp - 0x538]
sub esp, 4
jmp 0x412541
cmp byte [eax + edx - 1], 0x2f
jne 0x412356
lea ecx, [ebp - 0x568]
mov dword [esp], 0x4fa289
mov dword [ebp - 0x5a8], 1
call fcn.004d9be0
sub esp, 4
mov eax, dword [ebp - 0x568]
jmp 0x412356
mov eax, dword [ebp - 0x5d4]
mov dword [ebp - 0x5c0], eax
jmp 0x412e64
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x412f8a
mov eax, dword [ebp - 0x538]
mov dword [esp], eax
call fcn.004049f0
mov eax, dword [ebp - 0x538]
cmp eax, dword [ebp - 0x5ec]
je 0x412fa0
mov dword [esp], eax
call fcn.004f28f0
mov eax, dword [ebp - 0x5f4]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 1
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x568]
lea ebx, [ebp - 0x560]
sub esp, 4
cmp eax, ebx
je 0x4122ea
mov dword [esp], eax
call fcn.004f28f0
jmp 0x4122ea
mov eax, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x5a8], 1
mov dword [ebp - 0x5b0], eax
call eax
cmp eax, 2
je 0x412fa0
mov eax, dword [ebp - 0x5b0]
call eax
cmp eax, 3
je 0x412fa0
mov eax, dword [ebp - 0x568]
mov dword [esp], eax
mov dword [ebp - 0x5a8], 1
call fcn.004049f0
jmp 0x412fa0
mov dword [esp], str.GetModuleFileNameW
mov dword [ebp - 0x5a8], 4
call fcn.004ea920
mov dword [esp], str.GetModuleFileNameW
mov dword [ebp - 0x5a8], 4
call fcn.004ea920
lea esi, [esi]
lea edi, [edi]
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x78]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x88]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x24], edx
mov eax, dword [eax]
mov dword [esp + 4], 0
mov dword [esp], eax
mov dword [esp + 0x1c], eax
call fcn.00407710
sub esp, 8
test al, al
jne 0x4131d0
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov eax, dword [esp + 0x38]
mov ebx, dword [eax + 0x134]
lea edx, [eax + 0x130]
mov dword [esp + 0x3c], edx
test ebx, ebx
je 0x4132e0
mov eax, dword [esp + 0x70]
mov ebp, edx
mov edi, dword [eax + 4]
jmp 0x413228
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x413236
test eax, eax
js 0x41323e
mov ebp, ebx
mov ebx, dword [ebx + 8]
test ebx, ebx
je 0x413245
mov esi, dword [ebx + 0x14]
mov eax, edi
cmp esi, edi
cmovbe eax, esi
test eax, eax
jne 0x413200
mov eax, esi
sub eax, edi
test eax, eax
jns 0x41321f
mov ebx, dword [ebx + 0xc]
test ebx, ebx
jne 0x413228
cmp dword [esp + 0x3c], ebp
je 0x4132e2
mov ebx, dword [ebp + 0x14]
mov eax, edi
cmp ebx, edi
cmovbe eax, ebx
test eax, eax
jne 0x4132c0
mov eax, edi
sub eax, ebx
test eax, eax
js 0x4132e2
mov ecx, ebp
mov eax, dword [esp + 0x38]
movq xmm0, qword [esp + 0x28]
movq xmm1, qword [esp + 0x30]
movq qword [ecx + 0x28], xmm0
cmp byte [eax + 0x74], 0
movq qword [ecx + 0x30], xmm1
je 0x413297
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
movq xmm2, qword [esp + 0x20]
mov dword [ecx + 0x40], 0
movq qword [ecx + 0x38], xmm2
mov dword [ecx + 0x44], 0
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x413261
jmp 0x41325d
mov ebp, edx
mov eax, dword [esp + 0x70]
lea edx, [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x38]
add eax, 0x12c
mov ecx, eax
call fcn.0040acc0
sub esp, 8
mov ecx, eax
jmp 0x413267