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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x54
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x54], eax
mov eax, dword [0x43d080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x50], 0x95d8c7ee
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
sub eax, 0x83c8bc01
je 0x40c21a
jmp 0x40bdbc
mov eax, dword [ebp - 0x5c]
sub eax, 0x8b8a4fe3
je 0x40c611
jmp 0x40bdcf
mov eax, dword [ebp - 0x5c]
sub eax, 0x8babf9ba
je 0x40c5c0
jmp 0x40bde2
mov eax, dword [ebp - 0x5c]
sub eax, 0x8bb3ea7e
je 0x40c2d6
jmp 0x40bdf5
mov eax, dword [ebp - 0x5c]
sub eax, 0x95d8c7ee
je 0x40c0df
jmp 0x40be08
mov eax, dword [ebp - 0x5c]
sub eax, 0x9895f38d
je 0x40c5ea
jmp 0x40be1b
mov eax, dword [ebp - 0x5c]
sub eax, 0x9e5a252a
je 0x40c7e1
jmp 0x40be2e
mov eax, dword [ebp - 0x5c]
sub eax, 0xa3617978
je 0x40c82f
jmp 0x40be41
mov eax, dword [ebp - 0x5c]
sub eax, 0xb0f13825
je 0x40c6ce
jmp 0x40be54
mov eax, dword [ebp - 0x5c]
sub eax, 0xb42c13f3
je 0x40c63e
jmp 0x40be67
mov eax, dword [ebp - 0x5c]
sub eax, 0xb45176ef
je 0x40c71c
jmp 0x40be7a
mov eax, dword [ebp - 0x5c]
sub eax, 0xb6d59875
je 0x40c20e
jmp 0x40be8d
mov eax, dword [ebp - 0x5c]
sub eax, 0xbda905ad
je 0x40c552
jmp 0x40bea0
mov eax, dword [ebp - 0x5c]
sub eax, 0xbdc84ff7
je 0x40c801
jmp 0x40beb3
mov eax, dword [ebp - 0x5c]
sub eax, 0xc5a99552
je 0x40c4cd
jmp 0x40bec6
mov eax, dword [ebp - 0x5c]
sub eax, 0xc5b4be03
je 0x40c447
jmp 0x40bed9
mov eax, dword [ebp - 0x5c]
sub eax, 0xcb30c20e
je 0x40c81d
jmp 0x40beec
mov eax, dword [ebp - 0x5c]
sub eax, 0xcc0d4a2e
je 0x40c55e
jmp 0x40beff
mov eax, dword [ebp - 0x5c]
sub eax, 0xd234c66a
je 0x40c1c4
jmp 0x40bf12
mov eax, dword [ebp - 0x5c]
sub eax, 0xd8779b96
je 0x40c3c0
jmp 0x40bf25
mov eax, dword [ebp - 0x5c]
sub eax, 0xd9e5d5bd
je 0x40c226
jmp 0x40bf38
mov eax, dword [ebp - 0x5c]
sub eax, 0xda012a13
je 0x40c238
jmp 0x40bf4b
mov eax, dword [ebp - 0x5c]
sub eax, 0xdc3efe19
je 0x40c605
jmp 0x40bf5e
mov eax, dword [ebp - 0x5c]
sub eax, 0xe1527348
je 0x40c5cc
jmp 0x40bf71
mov eax, dword [ebp - 0x5c]
sub eax, 0xee0c6744
je 0x40c61d
jmp 0x40bf84
mov eax, dword [ebp - 0x5c]
sub eax, 0xefb1ff52
je 0x40c2c4
jmp 0x40bf97
mov eax, dword [ebp - 0x5c]
sub eax, 0xf66f1fed
je 0x40c421
jmp 0x40bfaa
mov eax, dword [ebp - 0x5c]
sub eax, 0xfbbe37e4
je 0x40c462
jmp 0x40bfbd
mov eax, dword [ebp - 0x5c]
sub eax, 0x1856e53
je 0x40c42d
jmp 0x40bfd0
mov eax, dword [ebp - 0x5c]
sub eax, 0x2a76bb3
je 0x40c663
jmp 0x40bfe3
mov eax, dword [ebp - 0x5c]
sub eax, 0x3ac0b63
je 0x40c793
jmp 0x40bff6
mov eax, dword [ebp - 0x5c]
sub eax, 0xc1222e2
je 0x40c299
jmp 0x40c009
mov eax, dword [ebp - 0x5c]
sub eax, 0xd1cf17a
je 0x40c3b4
jmp 0x40c01c
mov eax, dword [ebp - 0x5c]
sub eax, 0x12885de0
je 0x40c3d8
jmp 0x40c02f
mov eax, dword [ebp - 0x5c]
sub eax, 0x1ec8bb51
je 0x40c811
jmp 0x40c042
mov eax, dword [ebp - 0x5c]
sub eax, 0x2063c0a5
je 0x40c5a5
jmp 0x40c055
mov eax, dword [ebp - 0x5c]
sub eax, 0x28ada318
je 0x40c2b4
jmp 0x40c068
mov eax, dword [ebp - 0x5c]
sub eax, 0x38c6cc2e
je 0x40c728
jmp 0x40c07b
mov eax, dword [ebp - 0x5c]
sub eax, 0x3b88adcf
je 0x40c159
jmp 0x40c08e
mov eax, dword [ebp - 0x5c]
sub eax, 0x3fb2570b
je 0x40c546
jmp 0x40c0a1
mov eax, dword [ebp - 0x5c]
sub eax, 0x46562dac
je 0x40c176
jmp 0x40c0b4
mov eax, dword [ebp - 0x5c]
sub eax, 0x55a2d732
je 0x40c349
jmp 0x40c0c7
mov eax, dword [ebp - 0x5c]
sub eax, 0x71ac3dba
je 0x40c83b
jmp 0x40c0da
jmp 0x40c842
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
push eax
mov edx, esp
mov dword [ebp - 0x38], edx
push eax
mov edx, esp
mov dword [ebp - 0x34], edx
push eax
sub esp, 0xffc
mov edx, esp
mov dword [ebp - 0x30], edx
push eax
mov edx, esp
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
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 - 0x48], eax
mov dword [ebp - 0x50], 0x3b88adcf
jmp 0x40c842
mov edx, 0xffffffff
mov eax, 0xd9e5d5bd
mov ecx, 0x46562dac
cmp dword [ebp - 0x48], edx
cmove eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
sub edx, 0x803f7919
sub edx, 1
add edx, 0x803f7919
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, 0xbdc84ff7
mov ecx, 0xd234c66a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov byte [ebp - 0x39], 0
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
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, 0xbdc84ff7
mov ecx, 0xb6d59875
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0x83c8bc01
jmp 0x40c842
mov dword [ebp - 0x50], 0x2a76bb3
jmp 0x40c842
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x50], 0xda012a13
jmp 0x40c842
mov eax, dword [ebp - 0x28]
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 - 0x4c], eax
mov edx, 0xffffffff
mov eax, 0xefb1ff52
mov ecx, 0xc1222e2
cmp dword [ebp - 0x4c], edx
cmove eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x50], 0x28ada318
jmp 0x40c842
mov byte [ebp - 0x39], 0
mov dword [ebp - 0x50], 0x2a76bb3
jmp 0x40c842
mov eax, dword [ebp - 0x38]
mov byte [eax], 0
mov dword [ebp - 0x50], 0x8bb3ea7e
jmp 0x40c842
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
add edx, 0x57d91bdd
sub edx, 1
sub edx, 0x57d91bdd
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, 0x1ec8bb51
mov ecx, 0x55a2d732
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 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, 0x1ec8bb51
mov ecx, 0xd1cf17a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0xd8779b96
jmp 0x40c842
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x50], 0x12885de0
jmp 0x40c842
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
mov edx, dword [ebp - 0x20]
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, 0xf66f1fed
mov ecx, 0x1856e53
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0xee0c6744
jmp 0x40c842
mov eax, dword [ebp - 0x2c]
cmp dword [eax], 0
sete al
and al, 1
mov byte [ebp - 0x1b], al
mov dword [ebp - 0x50], 0xc5b4be03
jmp 0x40c842
mov dl, byte [ebp - 0x1b]
mov eax, 0xcc0d4a2e
mov ecx, 0xfbbe37e4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 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, 0xcb30c20e
mov ecx, 0xc5a99552
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
mov edx, ecx
sub edx, 0xffb70d24
sub edx, 1
add edx, 0xffb70d24
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, 0xcb30c20e
mov ecx, 0x3fb2570b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0xbda905ad
jmp 0x40c842
mov dword [ebp - 0x50], 0xee0c6744
jmp 0x40c842
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x30]
mov esi, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x34]
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]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x1a], al
mov dword [ebp - 0x50], 0x2063c0a5
jmp 0x40c842
mov dl, byte [ebp - 0x1a]
mov eax, 0x8babf9ba
mov ecx, 0xe1527348
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0xee0c6744
jmp 0x40c842
mov eax, dword [ebp - 0x34]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x2c]
cmp eax, dword [ecx]
setne al
and al, 1
mov byte [ebp - 0x19], al
mov dword [ebp - 0x50], 0x9895f38d
jmp 0x40c842
mov dl, byte [ebp - 0x19]
mov eax, 0x8b8a4fe3
mov ecx, 0xdc3efe19
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0xee0c6744
jmp 0x40c842
mov dword [ebp - 0x50], 0xd8779b96
jmp 0x40c842
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x50], 0xb42c13f3
jmp 0x40c842
mov eax, dword [ebp - 0x18]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x38]
mov al, byte [eax]
and al, 1
mov byte [ebp - 0x39], al
mov dword [ebp - 0x50], 0x2a76bb3
jmp 0x40c842
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 0xa3617978
mov ecx, 0xb0f13825
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov al, byte [ebp - 0x39]
and al, 1
mov byte [ebp - 0x11], al
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
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, 0xa3617978
mov ecx, 0xb45176ef
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov dword [ebp - 0x50], 0x38c6cc2e
jmp 0x40c842
mov ecx, dword [0x43e574]
mov eax, dword [0x43e570]
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, 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, 0x71ac3dba
mov ecx, 0x3ac0b63
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov eax, dword [0x43e574]
mov ecx, dword [0x43e570]
mov edx, eax
sub edx, 0xde7f1a10
sub edx, 1
add edx, 0xde7f1a10
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, 0x71ac3dba
mov ecx, 0x9e5a252a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40c842
mov al, byte [ebp - 0x11]
and al, 1
movzx eax, al
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004270e0
mov eax, dword [ebp - 0x60]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [ebp - 0x39], 0
mov dword [ebp - 0x50], 0xd234c66a
jmp 0x40c842
mov dword [ebp - 0x50], 0x55a2d732
jmp 0x40c842
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
mov dword [ebp - 0x50], 0xc5a99552
jmp 0x40c842
mov dword [ebp - 0x50], 0xb0f13825
jmp 0x40c842
mov dword [ebp - 0x50], 0x3ac0b63
jmp 0x40bda6