Function at 0x401ecc
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x1ac
mov dword [ebp - 0x174], sym.___gxx_personality_sj0
mov dword [ebp - 0x170], 0x40bcb0
lea eax, [ebp - 0x16c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x402267
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x18c]
mov dword [esp], eax
call dbg._Unwind_SjLj_Register
mov dword [esp + 4], 0x40e24b
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym._fopen
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x401f36
mov eax, 5
jmp 0x40233b
cmp dword [ebp + 0xc], 0
je 0x401f56
mov dword [esp + 8], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._fseek
mov eax, dword [ebp - 0x38]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 4
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call sym._fread
mov eax, dword [ebp - 0x3c]
cmp eax, 0x41464946
je 0x401f97
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._fclose
mov eax, 3
jmp 0x40233b
mov eax, dword [ebp - 0x38]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0x110
lea eax, [ebp - 0x14c]
mov dword [esp], eax
call sym._fread
mov eax, dword [ebp - 0x48]
mov dword [esp + 8], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], str.Extracting_______s___li__n
call sym._printf
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call sym._malloc
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call sym._fread
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call sym._fclose
mov byte [ebp - 0x19], 0
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x402028
mov byte [ebp - 0x19], 1
mov eax, dword [ebp - 0x40]
cmp eax, 1
je 0x402066
cmp eax, 1
jg 0x40203e
test eax, eax
je 0x402055
jmp 0x402304
cmp eax, 2
je 0x402130
cmp eax, 3
je 0x4021b0
jmp 0x402304
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x2c], eax
jmp 0x402304
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], str._nDecompressing_______s__n
call sym._printf
mov dword [esp], 0x280c
mov dword [ebp - 0x188], 0xffffffff
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x1a4], eax
mov eax, dword [ebp - 0x1a4]
mov dword [esp], eax
mov dword [ebp - 0x188], 2
call sym.HuffmanD::HuffmanD__
mov eax, dword [ebp - 0x1a4]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.Decompress
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call dbg.getOutput
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
jmp 0x402304
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], str._nDecrypting_______s__n
call sym._printf
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call sym._malloc
mov dword [ebp - 0x2c], eax
mov al, byte [ebp - 0x19]
xor eax, 1
test al, al
je 0x40217f
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.decryptFile(unsigned char*, long)
mov dword [ebp - 0x2c], eax
jmp 0x4021a5
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x34]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.decryptFile(unsigned char*, long, int)
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x24], eax
jmp 0x402304
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], str._nDecompressing_______s__n
call sym._printf
mov dword [esp], 0x280c
mov dword [ebp - 0x188], 0xffffffff
call sym.operator_new_unsigned_int_
mov dword [ebp - 0x1a0], eax
mov eax, dword [ebp - 0x1a0]
mov dword [esp], eax
mov dword [ebp - 0x188], 1
call sym.HuffmanD::HuffmanD__
mov eax, dword [ebp - 0x1a0]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x48]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.Decompress
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call dbg.getOutput
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._malloc
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], str._nDecrypting_______s__n
call sym._printf
mov al, byte [ebp - 0x19]
xor eax, 1
test al, al
jne 0x4022bd
jmp 0x4022de
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.decryptFile(unsigned char*, long)
mov dword [ebp - 0x2c], eax
jmp 0x402304
mov eax, dword [ebp - 0x44]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.decryptFile(unsigned char*, long, int)
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x24]
mov dword [esp + 8], eax
lea eax, [ebp - 0x14c]
mov dword [esp + 4], eax
mov dword [esp], str._nUnpacking_Successful__n_nExecuting_from_Memory_______s___i__n
call sym._printf
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
mov dword [ebp - 0x188], 0xffffffff
call dbg.LoadEXE(void*)
mov eax, 0
mov dword [ebp - 0x1a8], eax
lea eax, [ebp - 0x18c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0x1a8]
add esp, 0x1ac
pop ebx
pop esi
pop edi
leave
ret