Function at 0x406dc1
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf0
push esi
mov dword [ebp - 0x18], 0xc
cmp dword [ebp + 8], 0
je 0x4076e4
push 0x10000
call fcn.00408efd
add esp, 4
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x34], eax
mov dword [ebp - 4], 0x10000
mov ecx, dword [ebp + 0x10]
push ecx
lea edx, [ebp - 4]
push edx
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.00406a84
add esp, 0x10
and eax, 0xff
test eax, eax
jne 0x406e21
xor al, al
jmp 0x4076e6
cmp dword [ebp - 4], 0
jne 0x406e2e
mov al, 1
jmp 0x4076e6
mov edx, dword [ebp - 0x34]
mov eax, dword [edx]
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x34]
mov eax, dword [edx + 4]
mov dword [ebp - 8], eax
push 2
mov ecx, dword [ebp - 0x34]
add ecx, 8
push ecx
push 0x415244
call fcn.00408f10
add esp, 0xc
cmp dword [ebp - 8], 0
jne 0x406e68
mov al, 1
jmp 0x4076e6
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x3c], 0x1000
xor edx, edx
mov dl, byte [0x41535e]
test edx, edx
je 0x4072b2
mov eax, dword [ebp - 8]
add eax, 0xfff
shr eax, 0xc
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x2c]
shl ecx, 2
push ecx
call fcn.00408efd
add esp, 4
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x6c]
mov dword [0x4150fc], edx
push 0
call fcn.00409b54
add esp, 4
mov esi, eax
xor esi, dword [0x412184]
xor esi, dword [0x41216c]
xor esi, dword [0x412178]
xor esi, dword [0x412180]
xor esi, dword [0x412174]
call fcn.00409adc
xor esi, eax
mov dword [ebp - 0x7c], esi
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], 0
jmp 0x406f09
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x40]
cmp edx, dword [ebp - 0x2c]
jge 0x407280
mov dword [ebp - 0xa0], 0x100
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0x90], edx
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0x9c], eax
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0x98], edx
mov ecx, dword [ebp - 0x90]
imul ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0x94]
imul edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x90]
imul eax, dword [ebp - 0x9c]
add eax, edx
xor edx, edx
mov esi, 0x2710
div esi
mov eax, edx
imul eax, eax, 0x2710
add eax, ecx
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov eax, edx
add eax, 1
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, 0x2710
div ecx
imul eax, dword [ebp - 0xa0]
xor edx, edx
mov ecx, 0x2710
div ecx
and eax, 0xff
mov dword [ebp - 0x8c], eax
mov dword [ebp - 0xb4], 0x100
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xa4], edx
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xb0], eax
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xac], edx
mov ecx, dword [ebp - 0xa4]
imul ecx, dword [ebp - 0xac]
mov edx, dword [ebp - 0xa8]
imul edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa4]
imul eax, dword [ebp - 0xb0]
add eax, edx
xor edx, edx
mov esi, 0x2710
div esi
mov eax, edx
imul eax, eax, 0x2710
add eax, ecx
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov eax, edx
add eax, 1
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, 0x2710
div ecx
imul eax, dword [ebp - 0xb4]
xor edx, edx
mov ecx, 0x2710
div ecx
and eax, 0xff
mov dword [ebp - 0x80], eax
mov dword [ebp - 0xc8], 0x100
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xb8], edx
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xc4], eax
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xc0], edx
mov ecx, dword [ebp - 0xb8]
imul ecx, dword [ebp - 0xc0]
mov edx, dword [ebp - 0xbc]
imul edx, dword [ebp - 0xc0]
mov eax, dword [ebp - 0xb8]
imul eax, dword [ebp - 0xc4]
add eax, edx
xor edx, edx
mov esi, 0x2710
div esi
mov eax, edx
imul eax, eax, 0x2710
add eax, ecx
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov eax, edx
add eax, 1
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, 0x2710
div ecx
imul eax, dword [ebp - 0xc8]
xor edx, edx
mov ecx, 0x2710
div ecx
and eax, 0xff
mov dword [ebp - 0x84], eax
mov dword [ebp - 0xdc], 0x100
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xcc], edx
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xd8], eax
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xd4], edx
mov ecx, dword [ebp - 0xcc]
imul ecx, dword [ebp - 0xd4]
mov edx, dword [ebp - 0xd0]
imul edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 0xcc]
imul eax, dword [ebp - 0xd8]
add eax, edx
xor edx, edx
mov esi, 0x2710
div esi
mov eax, edx
imul eax, eax, 0x2710
add eax, ecx
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov eax, edx
add eax, 1
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x44]
xor edx, edx
mov ecx, 0x2710
div ecx
imul eax, dword [ebp - 0xdc]
xor edx, edx
mov ecx, 0x2710
div ecx
and eax, 0xff
mov dword [ebp - 0x88], eax
mov edx, dword [ebp - 0x84]
shl edx, 8
mov eax, dword [ebp - 0x80]
shl eax, 0x10
mov ecx, dword [ebp - 0x8c]
shl ecx, 0x18
or ecx, eax
or ecx, edx
or ecx, dword [ebp - 0x88]
mov edx, dword [ebp - 0x40]
mov eax, dword [0x4150fc]
mov dword [eax + edx*4], ecx
jmp 0x406f00
mov ecx, dword [0x41215c]
xor ecx, dword [0x412174]
xor ecx, dword [0x412178]
push ecx
call fcn.00409adc
mov edx, dword [0x4150fc]
lea eax, [edx + eax*4]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00404fbd
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
push 4
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
jne 0x4072d5
xor al, al
jmp 0x4076e6
xor ecx, ecx
mov cl, byte [0x41535e]
test ecx, ecx
je 0x407328
mov edx, dword [ebp - 0x34]
add edx, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x24]
jae 0x407328
mov edx, dword [ebp - 0x38]
shr edx, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x4150fc]
mov eax, dword [eax]
xor eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov edx, dword [ebp - 0x20]
add edx, 4
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
jmp 0x4072f3
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x407353
xor al, al
jmp 0x4076e6
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x10]
add ecx, eax
mov dword [ebp - 0x10], ecx
mov edx, 1
test edx, edx
je 0x40742b
mov dword [ebp - 4], 0x10000
mov eax, dword [ebp + 0x10]
push eax
lea ecx, [ebp - 4]
push ecx
mov edx, dword [ebp - 0x34]
push edx
mov eax, dword [ebp + 0xc]
push eax
call fcn.00406a84
add esp, 0x10
and eax, 0xff
test eax, eax
jne 0x40739d
xor al, al
jmp 0x4076e6
cmp dword [ebp - 4], 0
jne 0x4073a8
jmp 0x40742b
xor ecx, ecx
mov cl, byte [0x41535e]
test ecx, ecx
je 0x4073f8
mov edx, dword [ebp - 0x34]
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 4]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x24]
jae 0x4073f8
mov edx, dword [ebp - 0x38]
shr edx, 0xc
mov eax, dword [ebp - 0x20]
mov ecx, dword [0x4150fc]
mov eax, dword [eax]
xor eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x20]
mov dword [ecx], eax
mov edx, dword [ebp - 0x20]
add edx, 4
mov dword [ebp - 0x20], edx
mov eax, dword [ebp - 0x38]
add eax, 4
mov dword [ebp - 0x38], eax
jmp 0x4073c3
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x40741d
xor al, al
jmp 0x4076e6
mov eax, dword [ebp - 0x10]
add eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
jmp 0x407361
mov dword [ebp - 0x28], 0
jmp 0x40743d
mov ecx, dword [ebp - 0x28]
add ecx, 1
mov dword [ebp - 0x28], ecx
xor edx, edx
mov dx, word [0x41547c]
cmp dword [ebp - 0x28], edx
jge 0x4076b0
mov eax, dword [ebp - 0x28]
shl eax, 1
mov ecx, dword [0x415480]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x54], edx
mov eax, dword [ebp - 0x28]
shl eax, 1
mov ecx, dword [0x415480]
mov edx, dword [ecx + eax*4 + 4]
mov dword [ebp - 0x50], edx
mov word [ebp - 0x4c], 0
push 0
lea eax, [ebp - 0x48]
push eax
push 2
lea ecx, [ebp - 0x4c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [ebp - 0x4c]
and eax, 0xffff
push eax
call fcn.00408efd
add esp, 4
mov dword [ebp - 0x70], eax
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x58], ecx
push 0
lea edx, [ebp - 0x48]
push edx
mov eax, dword [ebp - 0x4c]
and eax, 0xffff
push eax
mov ecx, dword [ebp - 0x58]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [ebp - 0x54], 0
je 0x407699
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x4c]
and edx, 0xffff
mov eax, dword [ebp - 0x5c]
add eax, edx
mov dword [ebp - 0x60], eax
jmp 0x4074f7
mov ecx, dword [ebp - 0x5c]
add ecx, 1
mov dword [ebp - 0x5c], ecx
mov edx, dword [ebp - 0x5c]
cmp edx, dword [ebp - 0x60]
jae 0x4075d8
mov dword [ebp - 0xf0], 0x100
mov eax, dword [ebp - 0x64]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x64]
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xe0], edx
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xec], eax
mov eax, 0x1df5e0d
cdq
mov ecx, 0x2710
idiv ecx
mov dword [ebp - 0xe8], edx
mov ecx, dword [ebp - 0xe0]
imul ecx, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xe4]
imul edx, dword [ebp - 0xe8]
mov eax, dword [ebp - 0xe0]
imul eax, dword [ebp - 0xec]
add eax, edx
xor edx, edx
mov esi, 0x2710
div esi
mov eax, edx
imul eax, eax, 0x2710
add eax, ecx
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov eax, edx
add eax, 1
xor edx, edx
mov ecx, 0x5f5e100
div ecx
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x64]
xor edx, edx
mov ecx, 0x2710
div ecx
imul eax, dword [ebp - 0xf0]
xor edx, edx
mov ecx, 0x2710
div ecx
mov edx, dword [ebp - 0x5c]
mov cl, byte [edx]
xor cl, al
mov edx, dword [ebp - 0x5c]
mov byte [edx], cl
jmp 0x4074ee
xor eax, eax
mov al, byte [0x41535e]
test eax, eax
je 0x407671
push 0
mov ecx, dword [ebp - 0x54]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00404b50
add esp, 0xc
push 0
mov eax, dword [ebp - 0x4c]
and eax, 0xffff
mov ecx, dword [ebp - 0x54]
add ecx, eax
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00404b50
add esp, 0xc
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x4c]
and ecx, 0xffff
push ecx
mov edx, dword [ebp - 0x58]
push edx
mov eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x407640
xor al, al
jmp 0x4076e6
push 1
mov edx, dword [ebp - 0x4c]
and edx, 0xffff
mov eax, dword [ebp - 0x54]
add eax, edx
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.00404b50
add esp, 0xc
push 1
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00404b50
add esp, 0xc
jmp 0x407699
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x4c]
and edx, 0xffff
push edx
mov eax, dword [ebp - 0x58]
push eax
mov ecx, dword [ebp - 0x54]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
jne 0x407699
xor al, al
jmp 0x4076e6
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x74], eax
mov ecx, dword [ebp - 0x74]
push ecx
call fcn.00408ef2
add esp, 4
jmp 0x407434
lea edx, [ebp - 0x1c]
push edx
mov eax, dword [ebp - 0x1c]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 0x14]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
jne 0x4076d2
xor al, al
jmp 0x4076e6
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x78]
push edx
call fcn.00408ef2
add esp, 4
mov al, 1
pop esi
mov esp, ebp
pop ebp
ret