Function at 0x403e50
Capabilities:
Read file on windows
Terminate process

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
push 1
mov ebp, ecx
push 0x104
call dword [sym.imp.MSVCRT.dll_calloc]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x403e81
push eax
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
push 1
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [ebp + 0x49b8]
push 0x41614c
push eax
call dword [sym.imp.MSVCRT.dll__wfopen]
add esp, 8
mov esi, eax
test esi, esi
mov dword [esp + 0x20], esi
push 0
jne 0x403eb3
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
push 1
call dword [sym.imp.MSVCRT.dll_exit]
mov eax, dword [ebp + 0x1b94]
push eax
push esi
call dword [sym.imp.MSVCRT.dll_fseek]
mov edi, dword [sym.imp.MSVCRT.dll_fread]
push esi
push 4
push 1
push ebx
call edi
add esp, 0x1c
mov ecx, ebp
push ebx
call fcn.00403b10
mov ecx, eax
mov edx, dword [ebp + 0x1bb0]
shl ecx, 5
mov dword [esp + 0x28], ecx
add ecx, 9
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
shr ecx, 8
mov byte [ebp + 0x1c26], cl
mov cl, al
shl cl, 5
add cl, 9
mov byte [ebp + 0x1c24], 0x5a
mov byte [ebp + 0x1c27], cl
mov cl, byte [ebp + 0x1bb0]
sar edx, 8
test eax, eax
mov byte [ebp + 0x1c25], 0xa5
mov byte [ebp + 0x1c28], 4
mov byte [ebp + 0x1c29], dl
mov byte [ebp + 0x1c2a], cl
mov byte [ebp + 0x1c2b], al
jle 0x404016
lea edx, [ebp + 0x48f8]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], edx
push esi
push 4
push 1
push ebx
call edi
add esp, 0x10
xor eax, eax
mov edx, dword [esp + 0x10]
mov cl, byte [eax + ebx]
mov byte [edx + eax], cl
inc eax
cmp eax, 4
jl 0x403f5e
mov eax, dword [esp + 0x18]
mov ecx, edx
add ecx, 4
dec eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], eax
jne 0x403f51
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x404016
lea ecx, [ebp + 0x1c2c]
lea edx, [ebp + 0x48f8]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
jmp 0x403fae
mov edi, dword [sym.imp.MSVCRT.dll_fread]
mov eax, dword [esp + 0x10]
mov ecx, ebp
push eax
call fcn.00403b10
push 0
push eax
push esi
call dword [sym.imp.MSVCRT.dll_fseek]
push esi
push 0x20
push 1
push ebx
call edi
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ecx, 8
mov esi, ebx
lea edi, [ebp + 0x1b44]
add esp, 0x1c
rep movsd dword es:[edi], dword [esi]
mov edi, eax
add eax, 0x20
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
mov ecx, 8
lea esi, [ebp + 0x1b44]
add edx, 4
dec eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x10], edx
mov dword [esp + 0x1c], eax
jne 0x403fa8
mov eax, dword [esp + 0x24]
shl eax, 5
add eax, 8
lea edi, [ebp + 0x1c24]
push eax
push edi
mov ecx, ebp
call fcn.00403ae0
mov ecx, dword [esp + 0x28]
push ebx
mov byte [ecx + ebp + 0x1c2c], al
call dword [sym.imp.MSVCRT.dll_free]
push esi
call dword [sym.imp.MSVCRT.dll_fclose]
mov eax, dword [ebp + 0x1888]
add esp, 8
dec eax
je 0x4040a2
dec eax
je 0x40407c
dec eax
jne 0x4040bb
mov edx, dword [esp + 0x14]
mov ecx, ebp
push edx
push 0x1f4
push edi
call fcn.00403670
push 0x1f4
mov ecx, ebp
call fcn.004038c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x14]
mov ecx, ebp
push eax
push 0x1f4
push edi
call fcn.00402f10
push 0x1f4
mov ecx, ebp
call fcn.00402f90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov ecx, dword [esp + 0x14]
push ecx
push edi
mov ecx, ebp
call fcn.00403420
push 0x7a120
mov ecx, ebp
call fcn.00403480
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret