Function at 0x411ac0
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x439cd0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x2c0
mov eax, dword [0x44f00c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2cc], ecx
mov eax, dword [ebx + 8]
push 0
push 0x20
push 3
push 0
push 1
push SysReAllocString
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x4120c1
push 0
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
push esi
mov dword [ebp - 0x2bc], esi
call fcn.00419340
add esp, 4
mov dword [ebp - 0x2c8], eax
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x34], 0
push 0
push ecx
push esi
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4120c1
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x7c]
push 0x20
mov dword [ebp - 0x7c], 0
push str.nulrzptpubztuvlsgcigqalwkzkaobca
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0xf
mov byte [ebp - 0x7c], 0
call fcn.00406fc0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x64]
push 0x10
mov dword [ebp - 0x64], 0
push str.dkxdvlabjmigibcq
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
call fcn.00406fc0
mov byte [ebp - 4], 2
lea edx, [ebp - 0x7c]
cmp dword [ebp - 0x68], 0x10
lea ecx, [ebp - 0x2b8]
cmovae edx, dword [ebp - 0x7c]
call fcn.00401080
mov eax, esi
test al, 0xf
jne 0x411d5a
shr eax, 4
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x411cbf
mov edi, dword [ebp - 0x2c8]
nop dword [eax + eax]
movups xmm0, xmmword [edi]
lea edx, [ebp - 0x2b8]
lea ecx, [ebp - 0x44]
movups xmmword [ebp - 0x44], xmm0
call fcn.00401300
xor esi, esi
nop word [eax + eax]
cmp dword [ebp - 0x50], 0x10
lea ecx, [ebp - 0x64]
mov edx, dword [ebp - 0x20]
cmovae ecx, dword [ebp - 0x64]
setae byte [ebp - 0x2bd]
mov cl, byte [ecx + esi]
xor cl, byte [ebp + esi - 0x44]
mov byte [ebp - 0x18], cl
cmp edx, dword [ebp - 0x1c]
jae 0x411c7f
cmp dword [ebp - 0x1c], 0x10
lea eax, [edx + 1]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
mov byte [eax + edx], cl
mov byte [eax + edx + 1], 0
jmp 0x411c98
push dword [ebp - 0x18]
mov byte [ebp - 0x2c4], 0
push dword [ebp - 0x2c4]
push ecx
lea ecx, [ebp - 0x30]
call fcn.0040c740
cmp byte [ebp - 0x2bd], 0
lea ecx, [ebp - 0x64]
mov al, byte [edi]
cmovne ecx, dword [ebp - 0x64]
inc edi
mov byte [ecx + esi], al
inc esi
cmp esi, 0x10
jb 0x411c40
sub dword [ebp - 0x2bc], 1
jne 0x411c20
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 0x30]
mov esi, dword [ebp - 0x30]
cmp edx, 0x10
mov edi, dword [ebp - 0x20]
cmovae eax, esi
mov cl, byte [edi + eax - 1]
lea eax, [ecx - 1]
cmp al, 0xf
ja 0x411d15
test cl, cl
jle 0x411d15
movzx eax, cl
mov dword [ebp - 0x2bc], eax
nop dword [eax]
cmp edx, 0x10
lea eax, [ebp - 0x30]
lea ecx, [edi - 1]
cmovae eax, esi
mov dword [ebp - 0x20], ecx
sub dword [ebp - 0x2bc], 1
mov byte [eax + ecx], 0
mov edx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x30]
jne 0x411cf0
cmp edx, 0x10
lea ecx, [ebp - 0x30]
mov edx, edi
cmovae ecx, esi
sub esp, 8
call fcn.00419160
mov edi, eax
mov dword [ebp - 0x1c8], 0
add esp, 8
mov byte [ebp - 0x1c4], 0
mov dword [ebp - 0xa0], 0
test edi, edi
jne 0x411dfd
mov dword [0x4514c0], 0x10000
xor esi, esi
mov edx, dword [ebp - 0x50]
cmp edx, 0x10
jb 0x411d90
mov ecx, dword [ebp - 0x64]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x411d86
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4120e3
push edx
push ecx
call fcn.00419332
add esp, 8
mov eax, dword [ebp - 0x68]
cmp eax, 0x10
jb 0x411dc6
mov edx, dword [ebp - 0x7c]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x411dbc
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4120e3
push ecx
push edx
call fcn.00419332
add esp, 8
mov edx, dword [ebp - 0x1c]
cmp edx, 0x10
jb 0x4120bd
mov ecx, dword [ebp - 0x30]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4120b3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4120e3
jmp 0x4120b3
cmp dword [edi], 1
je 0x411e11
mov dword [0x4514c0], 0x80000
jmp 0x411d5a
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x1c8]
push eax
push 0xffffffffffffffff
call fcn.00418880
cmp dword [ebp - 0x1c8], 1
mov dword [0x4514c0], eax
jl 0x411d5a
xor esi, esi
mov dword [ebp - 0x1c8], 0
mov byte [ebp - 0x1c4], 0
mov dword [ebp - 0xa0], esi
cmp dword [edi], 1
mov dword [ebp - 0x18], esi
je 0x411e5c
mov eax, 0x80000
jmp 0x411e76
mov ecx, dword [edi + 4]
lea eax, [ebp - 0x1c8]
push eax
push 0
call fcn.00418880
mov esi, dword [ebp - 0xa0]
mov dword [ebp - 0x18], esi
push esi
mov dword [0x4514c0], eax
call fcn.00419340
mov ecx, dword [ebp - 0x2cc]
add esp, 4
mov dword [ecx + 0x778], eax
cmp dword [edi], 1
jne 0x411f89
push ecx
push esi
push eax
push ecx
mov ecx, dword [edi + 4]
call fcn.00419010
cmp dword [edi], 1
mov dword [0x4514c0], eax
jne 0x411f89
mov esi, dword [edi + 4]
cmp dword [esi + 4], 0xffffffff
je 0x411ec3
mov ecx, dword [esi]
call fcn.00418810
mov eax, dword [esi]
mov dword [esi + 4], 0xffffffff
mov dword [ebp - 0x2bc], eax
test eax, eax
je 0x411f24
cmp dword [eax + 0x7c], 0
je 0x411ee9
mov ecx, eax
call fcn.00418810
mov eax, dword [ebp - 0x2bc]
mov ecx, dword [eax]
mov dword [ebp - 0x2c4], ecx
test ecx, ecx
je 0x411f1b
cmp byte [ecx + 0x10], 0
je 0x411f0a
push dword [ecx + 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x2c4]
push 0x20
push ecx
call fcn.00419332
mov eax, dword [ebp - 0x2bc]
add esp, 8
push eax
call fcn.00421ca8
add esp, 4
mov eax, dword [esi + 0x138]
mov dword [esi], 0
mov dword [0x4514c0], 0
test eax, eax
je 0x411f47
push eax
call fcn.004192fd
add esp, 4
mov eax, dword [esi + 0x13c]
mov dword [esi + 0x138], 0
test eax, eax
je 0x411f64
push eax
call fcn.004192fd
add esp, 4
push 0x244
push esi
mov dword [esi + 0x13c], 0
call fcn.00419332
push 8
push edi
call fcn.00419332
mov esi, dword [ebp - 0x18]
add esp, 0x10
jmp 0x411f93
mov dword [0x4514c0], 0x80000
push dword [ebp - 0x2c8]
call fcn.004192fd
mov eax, dword [ebp - 0x2cc]
sub esp, 0x14
push esi
push dword [eax + 0x778]
lea edi, [eax + 0x77c]
mov ecx, edi
call fcn.00414550
test eax, eax
je 0x411d5a
push str.ExcuteBusiFunc
mov ecx, edi
call fcn.00414a10
mov esi, eax
test esi, esi
je 0x411d5a
call fcn.00409560
push eax
lea ecx, [ebp - 0x94]
call fcn.00406ef0
mov byte [ebp - 4], 3
call fcn.00409560
add eax, 0x30
lea ecx, [ebp - 0x4c]
push eax
call fcn.00406ef0
mov byte [ebp - 4], 4
call fcn.00409560
cmp dword [ebp - 0x38], 0x10
lea edx, [ebp - 0x4c]
cmovae edx, dword [ebp - 0x4c]
mov ecx, dword [eax + 0x48]
lea eax, [ebp - 0x94]
cmp dword [ebp - 0x80], 0x10
push ecx
cmovae eax, dword [ebp - 0x94]
push edx
push eax
call esi
mov edx, dword [ebp - 0x38]
neg eax
sbb esi, esi
inc esi
cmp edx, 0x10
jb 0x412065
mov ecx, dword [ebp - 0x4c]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41205b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4120e8
push edx
push ecx
call fcn.00419332
add esp, 8
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x3c], 0
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x4c], 0
cmp edx, 0x10
jb 0x411d5c
mov ecx, dword [ebp - 0x94]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x4120a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4120e8
push edx
push ecx
call fcn.00419332
add esp, 8
jmp 0x411d5c
push edx
push ecx
call fcn.00419332
add esp, 8
mov eax, esi
jmp 0x4120c3
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004192ef
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
call fcn.004219d1
call fcn.004219d1
int3