Function at 0x403ee0
Capabilities:
Enumerate files on windows
Extract resource via kernel32 functions
Get common file path
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x33f8
call fcn.00404d10
push ebx
push esi
push edi
xor eax, eax
mov al, byte [0x40af80]
and eax, 1
test eax, eax
jne 0x403f24
mov cl, byte [0x40af80]
or cl, 1
mov byte [0x40af80], cl
mov ecx, 0x40af88
call fcn.00404b20
push 0x404c20
call fcn.0040337c
add esp, 4
cmp dword [ebp + 0x14], 0
je 0x403f42
mov edx, dword [ebp + 0x14]
push edx
lea eax, [ebp - 0x100]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
jmp 0x403ffe
push 0x100
lea ecx, [ebp - 0x100]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push str..lic
push 0x5c
lea edx, [ebp - 0x100]
push edx
call sub.MSVCRT.dll_strrchr
add esp, 8
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
lea eax, [ebp - 0x274]
push eax
lea ecx, [ebp - 0x100]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x278], eax
cmp dword [ebp - 0x278], 0xffffffff
je 0x403fdf
lea edx, [ebp - 0x274]
push edx
mov eax, dword [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
lea ecx, [ebp - 0x248]
push ecx
push 0x5c
lea edx, [ebp - 0x100]
push edx
call sub.MSVCRT.dll_strrchr
add esp, 8
add eax, 1
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
mov eax, dword [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x403ffe
push str.license.lic
push 0x5c
lea ecx, [ebp - 0x100]
push ecx
call sub.MSVCRT.dll_strrchr
add esp, 8
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0x3000
push 0
lea edx, [ebp - 0x3278]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
cmp dword [0x40af94], 0
jne 0x404298
lea eax, [ebp - 0x3278]
push eax
lea ecx, [ebp - 0x100]
push ecx
call fcn.00404500
add esp, 8
test eax, eax
jne 0x404042
xor eax, eax
jmp 0x4044ef
mov esi, dword [ebp + 8]
mov ecx, 0xc
lea edi, [ebp - 0x134]
rep movsd dword es:[edi], dword [esi]
lea edx, [ebp - 0x134]
mov dword [ebp + 8], edx
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x1f]
mov byte [ebp - 0x327c], cl
mov dword [ebp - 0x104], 0
jmp 0x404082
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 8
jae 0x4040c2
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x104]
mov cl, byte [eax]
xor cl, byte [ebp - 0x327c]
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x104]
mov byte [edx], cl
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x104]
mov cl, byte [eax]
xor cl, 0x60
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x104]
mov byte [edx], cl
jmp 0x404073
mov dword [ebp - 0x104], 0
jmp 0x4040dd
mov eax, dword [ebp - 0x104]
add eax, 1
mov dword [ebp - 0x104], eax
cmp dword [ebp - 0x104], 0x18
jae 0x404121
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x104]
mov dl, byte [ecx + 8]
xor dl, byte [ebp - 0x327c]
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x104]
mov byte [eax + 8], dl
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x104]
mov dl, byte [ecx + 8]
xor dl, 0x80
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x104]
mov byte [eax + 8], dl
jmp 0x4040ce
mov dword [ebp - 0x104], 0
jmp 0x40413c
mov ecx, dword [ebp - 0x104]
add ecx, 1
mov dword [ebp - 0x104], ecx
cmp dword [ebp - 0x104], 8
jae 0x40417f
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x104]
mov al, byte [edx + 0x20]
xor al, byte [ebp - 0x327c]
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x104]
mov byte [ecx + 0x20], al
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x104]
mov al, byte [edx + 0x20]
xor al, 0xe0
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x104]
mov byte [ecx + 0x20], al
jmp 0x40412d
mov dword [ebp - 0x104], 0
jmp 0x40419a
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 8
jae 0x4041de
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x104]
mov cl, byte [eax + 0x28]
xor cl, byte [ebp - 0x327c]
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x104]
mov byte [edx + 0x28], cl
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x104]
mov cl, byte [eax + 0x28]
xor cl, 0x88
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x104]
mov byte [edx + 0x28], cl
jmp 0x40418b
mov eax, dword [ebp + 8]
mov byte [eax + 0x1f], 0
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + 0x28]
cmp edx, 0x23
jne 0x404207
mov eax, dword [ebp + 8]
movsx ecx, byte [eax + 0x2f]
test ecx, ecx
jne 0x404207
mov edx, dword [ebp + 8]
movsx eax, byte [edx]
cmp eax, 0x24
je 0x40420e
mov ecx, dword [ebp + 8]
mov byte [ecx + 8], 0
mov dword [ebp - 0x104], 0
jmp 0x404229
mov edx, dword [ebp - 0x104]
add edx, 1
mov dword [ebp - 0x104], edx
cmp dword [ebp - 0x104], 0x80
jge 0x404298
mov eax, dword [ebp - 0x104]
imul eax, eax, 0x60
lea ecx, [ebp + eax - 0x3270]
push ecx
mov edx, dword [ebp + 8]
add edx, 8
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x404296
mov eax, dword [ebp + 8]
add eax, 0x20
push eax
call sub.MSVCRT.dll_atof
fstp qword [ebp - 0x33b4]
add esp, 4
mov ecx, dword [ebp - 0x104]
imul ecx, ecx, 0x60
lea edx, [ebp + ecx - 0x3258]
push edx
call sub.MSVCRT.dll_atof
add esp, 4
fcomp qword [ebp - 0x33b4]
fnstsw ax
test ah, 1
jne 0x404296
jmp 0x404298
jmp 0x40421a
cmp dword [ebp - 0x104], 0x80
jl 0x4042b1
cmp dword [0x40af94], 0
je 0x4044ed
lea eax, [ebp - 0x337c]
push eax
push 0x100
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push str.s4.tmp
lea ecx, [ebp - 0x337c]
push ecx
call sub.MSVCRT.dll_strcat
add esp, 8
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x3380], edx
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x3384], eax
push 0
push 0
push 2
push 0
push 1
push 0xc0000000
lea ecx, [ebp - 0x337c]
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x3388], eax
cmp dword [ebp - 0x3388], 0
je 0x404487
push 0x408568
mov edx, dword [ebp - 0x3380]
and edx, 0xffff
push edx
mov eax, dword [ebp - 0x3384]
push eax
call dword [sym.imp.KERNEL32.dll_FindResourceA]
mov dword [ebp - 0x338c], eax
mov ecx, dword [ebp - 0x338c]
push ecx
mov edx, dword [ebp - 0x3384]
push edx
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov dword [ebp - 0x3390], eax
mov eax, dword [ebp - 0x338c]
push eax
mov ecx, dword [ebp - 0x3384]
push ecx
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov dword [ebp - 0x3394], eax
mov edx, dword [ebp - 0x3394]
push edx
call dword [sym.imp.KERNEL32.dll_LockResource]
mov dword [ebp - 0x3398], eax
mov eax, dword [ebp - 0x3390]
add eax, 8
push eax
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [ebp - 0x33a8], eax
mov ecx, dword [ebp - 0x33a8]
mov dword [ebp - 0x33a0], ecx
mov edx, dword [ebp - 0x3390]
push edx
mov eax, dword [ebp - 0x3398]
push eax
mov ecx, dword [ebp - 0x33a0]
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov byte [ebp - 0x33a4], 0x8f
mov edx, dword [ebp - 0x33a0]
mov dword [ebp - 0x339c], edx
mov dword [ebp - 0x104], 0
jmp 0x404402
mov eax, dword [ebp - 0x104]
add eax, 1
mov dword [ebp - 0x104], eax
mov ecx, dword [ebp - 0x339c]
add ecx, 1
mov dword [ebp - 0x339c], ecx
mov edx, dword [ebp - 0x104]
cmp edx, dword [ebp - 0x3390]
jge 0x404428
mov eax, dword [ebp - 0x339c]
mov cl, byte [eax]
xor cl, byte [ebp - 0x33a4]
mov edx, dword [ebp - 0x339c]
mov byte [edx], cl
jmp 0x4043e4
mov eax, dword [ebp - 0x33a0]
mov byte [eax], 0x4d
mov ecx, dword [ebp - 0x33a0]
mov byte [ecx + 1], 0x5a
push 0
lea edx, [ebp - 0x3390]
push edx
mov eax, dword [ebp - 0x3390]
push eax
mov ecx, dword [ebp - 0x33a0]
push ecx
mov edx, dword [ebp - 0x3388]
push edx
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [ebp - 0x3388]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x33a0]
mov dword [ebp - 0x33ac], ecx
mov edx, dword [ebp - 0x33ac]
push edx
call sub.MFC42.DLL_operatordelete
add esp, 4
lea eax, [ebp - 0x337c]
push eax
mov ecx, 0x40af88
call fcn.00404b50
test eax, eax
jne 0x4044a0
xor eax, eax
jmp 0x4044ef
cmp dword [0x40af94], 0
je 0x4044c5
push 0
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp + 0x14]
push edx
mov ecx, 0x40af88
call fcn.00404be0
mov dword [ebp - 0x33b8], eax
jmp 0x4044e5
push 0x40af90
lea eax, [ebp - 0x3278]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, 0x40af88
call fcn.00404be0
mov dword [ebp - 0x33b8], eax
mov eax, dword [ebp - 0x33b8]
jmp 0x4044ef
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret