Function at 0x40c090
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x5c
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x5c], eax
mov eax, dword [0x43f080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x58], 0xad7698b9
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x64], eax
sub eax, 0x819a06f1
je 0x40cc4e
jmp 0x40c0cc
mov eax, dword [ebp - 0x64]
sub eax, 0x85151e92
je 0x40caf8
jmp 0x40c0df
mov eax, dword [ebp - 0x64]
sub eax, 0x86a279dc
je 0x40cc1c
jmp 0x40c0f2
mov eax, dword [ebp - 0x64]
sub eax, 0x89d204b5
je 0x40cca2
jmp 0x40c105
mov eax, dword [ebp - 0x64]
sub eax, 0x8f1cad05
je 0x40c7bf
jmp 0x40c118
mov eax, dword [ebp - 0x64]
sub eax, 0x90a51808
je 0x40cd38
jmp 0x40c12b
mov eax, dword [ebp - 0x64]
sub eax, 0x94cfd208
je 0x40c867
jmp 0x40c13e
mov eax, dword [ebp - 0x64]
sub eax, 0x950ff654
je 0x40cd11
jmp 0x40c151
mov eax, dword [ebp - 0x64]
sub eax, 0x9b78eb26
je 0x40ca9c
jmp 0x40c164
mov eax, dword [ebp - 0x64]
sub eax, 0x9be63547
je 0x40cd1d
jmp 0x40c177
mov eax, dword [ebp - 0x64]
sub eax, 0x9cd67c47
je 0x40c94e
jmp 0x40c18a
mov eax, dword [ebp - 0x64]
sub eax, 0x9cdfaeec
je 0x40c7cb
jmp 0x40c19d
mov eax, dword [ebp - 0x64]
sub eax, 0xad7698b9
je 0x40c461
jmp 0x40c1b0
mov eax, dword [ebp - 0x64]
sub eax, 0xb09e94e2
je 0x40c4d5
jmp 0x40c1c3
mov eax, dword [ebp - 0x64]
sub eax, 0xb0abb698
je 0x40c873
jmp 0x40c1d6
mov eax, dword [ebp - 0x64]
sub eax, 0xb25a2728
je 0x40ca90
jmp 0x40c1e9
mov eax, dword [ebp - 0x64]
sub eax, 0xb7c5d6fb
je 0x40cab0
jmp 0x40c1fc
mov eax, dword [ebp - 0x64]
sub eax, 0xbb480412
je 0x40cb20
jmp 0x40c20f
mov eax, dword [ebp - 0x64]
sub eax, 0xbbec58fa
je 0x40ccf2
jmp 0x40c222
mov eax, dword [ebp - 0x64]
sub eax, 0xbe75fbcd
je 0x40cc76
jmp 0x40c235
mov eax, dword [ebp - 0x64]
sub eax, 0xc5b63c63
je 0x40c6d6
jmp 0x40c248
mov eax, dword [ebp - 0x64]
sub eax, 0xcce569aa
je 0x40c5a8
jmp 0x40c25b
mov eax, dword [ebp - 0x64]
sub eax, 0xcfc09d6b
je 0x40cd2c
jmp 0x40c26e
mov eax, dword [ebp - 0x64]
sub eax, 0xd164b23b
je 0x40c819
jmp 0x40c281
mov eax, dword [ebp - 0x64]
sub eax, 0xdf91731b
je 0x40ca80
jmp 0x40c294
mov eax, dword [ebp - 0x64]
sub eax, 0xe221954b
je 0x40cb93
jmp 0x40c2a7
mov eax, dword [ebp - 0x64]
sub eax, 0xe5fca2af
je 0x40c6ab
jmp 0x40c2ba
mov eax, dword [ebp - 0x64]
sub eax, 0xe9211a23
je 0x40c8d5
jmp 0x40c2cd
mov eax, dword [ebp - 0x64]
sub eax, 0xed2a8862
je 0x40cc62
jmp 0x40c2e0
mov eax, dword [ebp - 0x64]
sub eax, 0xf3163d4c
je 0x40cbe9
jmp 0x40c2f3
mov eax, dword [ebp - 0x64]
sub eax, 0xf52c24bc
je 0x40c54e
jmp 0x40c306
mov eax, dword [ebp - 0x64]
sub eax, 0xfd06cffd
je 0x40c95a
jmp 0x40c319
mov eax, dword [ebp - 0x64]
sub eax, 0xb7cbfe9
je 0x40cc04
jmp 0x40c32c
mov eax, dword [ebp - 0x64]
sub eax, 0xc9c379b
je 0x40c6b7
jmp 0x40c33f
mov eax, dword [ebp - 0x64]
sub eax, 0x1298f678
je 0x40cc10
jmp 0x40c352
mov eax, dword [ebp - 0x64]
sub eax, 0x18f0ba5d
je 0x40c4f8
jmp 0x40c365
mov eax, dword [ebp - 0x64]
sub eax, 0x19918250
je 0x40c883
jmp 0x40c378
mov eax, dword [ebp - 0x64]
sub eax, 0x1a6f4ba8
je 0x40cc96
jmp 0x40c38b
mov eax, dword [ebp - 0x64]
sub eax, 0x31792789
je 0x40c88f
jmp 0x40c39e
mov eax, dword [ebp - 0x64]
sub eax, 0x376d43c0
je 0x40cb04
jmp 0x40c3b1
mov eax, dword [ebp - 0x64]
sub eax, 0x41e3adfb
je 0x40c508
jmp 0x40c3c4
mov eax, dword [ebp - 0x64]
sub eax, 0x45ec1a4b
je 0x40c9af
jmp 0x40c3d7
mov eax, dword [ebp - 0x64]
sub eax, 0x4e6689d9
je 0x40c61b
jmp 0x40c3ea
mov eax, dword [ebp - 0x64]
sub eax, 0x55f525e4
je 0x40c741
jmp 0x40c3fd
mov eax, dword [ebp - 0x64]
sub eax, 0x56354eb0
je 0x40c59c
jmp 0x40c410
mov eax, dword [ebp - 0x64]
sub eax, 0x5d590435
je 0x40ca17
jmp 0x40c423
mov eax, dword [ebp - 0x64]
sub eax, 0x67bd0950
je 0x40c9a3
jmp 0x40c436
mov eax, dword [ebp - 0x64]
sub eax, 0x6bb51156
je 0x40ca65
jmp 0x40c449
mov eax, dword [ebp - 0x64]
sub eax, 0x6bea05c4
je 0x40c9c9
jmp 0x40c45c
jmp 0x40cd45
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x60]
push eax
mov edx, esp
mov dword [ebp - 0x3c], edx
push eax
sub esp, 0xffc
mov edx, esp
mov dword [ebp - 0x38], edx
push eax
mov edx, esp
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
xor ecx, ecx
sub esp, 0x1c
mov dword [esp], eax
mov dword [esp + 4], 0x80000000
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 0x80
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x58], 0xb09e94e2
jmp 0x40cd45
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x4c], eax
mov edx, 0xffffffff
mov eax, 0xcce569aa
mov ecx, 0x18f0ba5d
cmp dword [ebp - 0x4c], edx
cmove eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov byte [ebp - 0x3d], 0
mov dword [ebp - 0x58], 0x41e3adfb
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x1a6f4ba8
mov ecx, 0xf52c24bc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
mov edx, eax
add edx, 0xe7c56f3b
sub edx, 1
sub edx, 0xe7c56f3b
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x1a6f4ba8
mov ecx, 0x56354eb0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0xed2a8862
jmp 0x40cd45
mov ecx, dword [0x440544]
mov eax, dword [0x440540]
mov edx, ecx
sub edx, 0xb6c9d28
sub edx, 1
add edx, 0xb6c9d28
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x89d204b5
mov ecx, 0x4e6689d9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub esp, 0x1c
mov dword [esp], eax
mov dword [esp + 4], 0x40000000
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 0x80
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x89d204b5
mov ecx, 0xe5fca2af
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0xc9c379b
jmp 0x40cd45
mov edx, dword [ebp - 0x2c]
mov esi, 0xffffffff
mov eax, 0xb0abb698
mov ecx, 0xc5b63c63
cmp edx, esi
cmove eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov ecx, dword [0x440544]
mov eax, dword [0x440540]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0xbbec58fa
mov ecx, 0x55f525e4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x3d], 0
mov ecx, dword [0x440544]
mov eax, dword [0x440540]
xor esi, esi
sub esi, 1
mov edx, ecx
add edx, esi
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and bl, cl
mov ch, ah
and ch, 0
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0xbbec58fa
mov ecx, 0x8f1cad05
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0x9cdfaeec
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
mov edx, eax
sub edx, 0x61368d4e
sub edx, 1
add edx, 0x61368d4e
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x950ff654
mov ecx, 0xd164b23b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
mov edx, eax
sub edx, 0x4a39d000
sub edx, 1
add edx, 0x4a39d000
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x950ff654
mov ecx, 0x94cfd208
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0xed2a8862
jmp 0x40cd45
mov byte [ebp - 0x51], 0
mov dword [ebp - 0x58], 0x19918250
jmp 0x40cd45
mov dword [ebp - 0x58], 0x31792789
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x9be63547
mov ecx, 0xe9211a23
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov ecx, dword [0x440544]
mov eax, dword [0x440540]
mov edx, ecx
add edx, 0xde147346
sub edx, 1
sub edx, 0xde147346
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x9be63547
mov ecx, 0x9cd67c47
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0xfd06cffd
jmp 0x40cd45
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x28]
xor esi, esi
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x1000
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, eax
mov eax, 0x67bd0950
mov ecx, 0x45ec1a4b
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0x86a279dc
jmp 0x40cd45
mov eax, dword [ebp - 0x34]
cmp dword [eax], 0
sete al
and al, 1
mov byte [ebp - 0x21], al
mov dword [ebp - 0x58], 0x6bea05c4
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
mov edx, eax
add edx, 0x6075001
sub edx, 1
sub edx, 0x6075001
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xcfc09d6b
mov ecx, 0x5d590435
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
mov edx, eax
sub edx, 0x947257e
sub edx, 1
add edx, 0x947257e
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xcfc09d6b
mov ecx, 0x6bb51156
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dl, byte [ebp - 0x21]
mov eax, 0x9b78eb26
mov ecx, 0xdf91731b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov byte [ebp - 0x51], 1
mov dword [ebp - 0x58], 0xb25a2728
jmp 0x40cd45
mov dword [ebp - 0x58], 0x86a279dc
jmp 0x40cd45
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x58], 0xb7c5d6fb
jmp 0x40cd45
mov edx, dword [ebp - 0x38]
mov esi, dword [ebp - 0x50]
mov eax, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x20]
xor edi, edi
sub esp, 0x14
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, eax
mov eax, 0x85151e92
mov ecx, 0x376d43c0
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0x86a279dc
jmp 0x40cd45
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x58], 0xbb480412
jmp 0x40cd45
mov ecx, dword [0x440544]
mov eax, dword [0x440540]
mov edx, ecx
add edx, 0x7c47a360
sub edx, 1
sub edx, 0x7c47a360
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete bl
cmp eax, 0xa
setl dh
mov al, bl
xor al, 0xff
mov ah, dh
xor ah, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and bl, cl
mov ch, ah
and ch, 0xff
and dh, cl
or dl, bl
or ch, dh
xor dl, ch
or al, ah
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x90a51808
mov ecx, 0xe221954b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x18]
cmp eax, ecx
setne al
and al, 1
mov byte [ebp - 0x13], al
mov eax, dword [0x440544]
mov ecx, dword [0x440540]
xor esi, esi
sub esi, 1
mov edx, eax
add edx, esi
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x90a51808
mov ecx, 0xf3163d4c
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dl, byte [ebp - 0x13]
mov eax, 0x1298f678
mov ecx, 0xb7cbfe9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x58], eax
jmp 0x40cd45
mov dword [ebp - 0x58], 0x86a279dc
jmp 0x40cd45
mov dword [ebp - 0x58], 0x31792789
jmp 0x40cd45
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x50]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [ebp - 0x51]
and al, 1
mov byte [ebp - 0x12], al
mov dword [ebp - 0x58], 0x819a06f1
jmp 0x40cd45
mov al, byte [ebp - 0x12]
and al, 1
mov byte [ebp - 0x3d], al
mov dword [ebp - 0x58], 0xed2a8862
jmp 0x40cd45
mov al, byte [ebp - 0x3d]
and al, 1
mov byte [ebp - 0x11], al
mov dword [ebp - 0x58], 0xbe75fbcd
jmp 0x40cd45
mov al, byte [ebp - 0x11]
and al, 1
movzx eax, al
mov dword [ebp - 0x68], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004275c0
mov eax, dword [ebp - 0x68]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebp - 0x58], 0xf52c24bc
jmp 0x40cd45
mov eax, dword [ebp - 0x44]
xor ecx, ecx
sub esp, 0x1c
mov dword [esp], eax
mov dword [esp + 4], 0x40000000
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 0x80
mov dword [esp + 0x18], 0
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x58], 0x4e6689d9
jmp 0x40cd45
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x3d], 0
mov dword [ebp - 0x58], 0x55f525e4
jmp 0x40cd45
mov dword [ebp - 0x58], 0xd164b23b
jmp 0x40cd45
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x58], 0xe9211a23
jmp 0x40cd45
mov dword [ebp - 0x58], 0x5d590435
jmp 0x40cd45
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x58], 0xe221954b
jmp 0x40c0b6