Function at 0x406b70
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 [0x438080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x50], 0x4d88328a
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x5c], eax
sub eax, 0x871f6bb5
je 0x407358
jmp 0x406bac
mov eax, dword [ebp - 0x5c]
sub eax, 0x8cb7ea79
je 0x40747b
jmp 0x406bbf
mov eax, dword [ebp - 0x5c]
sub eax, 0x92210b5e
je 0x407781
jmp 0x406bd2
mov eax, dword [ebp - 0x5c]
sub eax, 0x9960b2b7
je 0x407018
jmp 0x406be5
mov eax, dword [ebp - 0x5c]
sub eax, 0x9b405ed2
je 0x407224
jmp 0x406bf8
mov eax, dword [ebp - 0x5c]
sub eax, 0x9c81c28c
je 0x407705
jmp 0x406c0b
mov eax, dword [ebp - 0x5c]
sub eax, 0x9ebf413b
je 0x40767c
jmp 0x406c1e
mov eax, dword [ebp - 0x5c]
sub eax, 0xa31bfafc
je 0x4071ee
jmp 0x406c31
mov eax, dword [ebp - 0x5c]
sub eax, 0xa474b56a
je 0x40756c
jmp 0x406c44
mov eax, dword [ebp - 0x5c]
sub eax, 0xab19821b
je 0x4076e5
jmp 0x406c57
mov eax, dword [ebp - 0x5c]
sub eax, 0xb12f2afb
je 0x407262
jmp 0x406c6a
mov eax, dword [ebp - 0x5c]
sub eax, 0xc515cc06
je 0x407168
jmp 0x406c7d
mov eax, dword [ebp - 0x5c]
sub eax, 0xc9a29bbb
je 0x407551
jmp 0x406c90
mov eax, dword [ebp - 0x5c]
sub eax, 0xd24fbf40
je 0x406fa5
jmp 0x406ca3
mov eax, dword [ebp - 0x5c]
sub eax, 0xd774e195
je 0x407670
jmp 0x406cb6
mov eax, dword [ebp - 0x5c]
sub eax, 0xef2d7615
je 0x40709b
jmp 0x406cc9
mov eax, dword [ebp - 0x5c]
sub eax, 0xf858939f
je 0x4076a3
jmp 0x406cdc
mov eax, dword [ebp - 0x5c]
sub eax, 0xfbd39348
je 0x407331
jmp 0x406cef
mov eax, dword [ebp - 0x5c]
sub eax, 0xfc4f9b8d
je 0x406f88
jmp 0x406d02
mov eax, dword [ebp - 0x5c]
sub eax, 0xfd81e2c7
je 0x4070fb
jmp 0x406d15
mov eax, dword [ebp - 0x5c]
sub eax, 0xfe258b7f
je 0x407772
jmp 0x406d28
mov eax, dword [ebp - 0x5c]
sub eax, 0xfeb3a95c
je 0x40711a
jmp 0x406d3b
mov eax, dword [ebp - 0x5c]
sub eax, 0x3a624db
je 0x4074d7
jmp 0x406d4e
mov eax, dword [ebp - 0x5c]
sub eax, 0x591cd1b
je 0x407504
jmp 0x406d61
mov eax, dword [ebp - 0x5c]
sub eax, 0xb82da51
je 0x407578
jmp 0x406d74
mov eax, dword [ebp - 0x5c]
sub eax, 0xc56655a
je 0x407206
jmp 0x406d87
mov eax, dword [ebp - 0x5c]
sub eax, 0xe9e362c
je 0x4076f1
jmp 0x406d9a
mov eax, dword [ebp - 0x5c]
sub eax, 0x1516feae
je 0x4074f2
jmp 0x406dad
mov eax, dword [ebp - 0x5c]
sub eax, 0x254bc447
je 0x407735
jmp 0x406dc0
mov eax, dword [ebp - 0x5c]
sub eax, 0x277a02bf
je 0x4071fa
jmp 0x406dd3
mov eax, dword [ebp - 0x5c]
sub eax, 0x31f711ed
je 0x407763
jmp 0x406de6
mov eax, dword [ebp - 0x5c]
sub eax, 0x35491b7f
je 0x4072d5
jmp 0x406df9
mov eax, dword [ebp - 0x5c]
sub eax, 0x3c503db4
je 0x40708f
jmp 0x406e0c
mov eax, dword [ebp - 0x5c]
sub eax, 0x4d88328a
je 0x406f08
jmp 0x406e1f
mov eax, dword [ebp - 0x5c]
sub eax, 0x4ec23055
je 0x4076af
jmp 0x406e32
mov eax, dword [ebp - 0x5c]
sub eax, 0x5331bd96
je 0x407218
jmp 0x406e45
mov eax, dword [ebp - 0x5c]
sub eax, 0x554e0829
je 0x407697
jmp 0x406e58
mov eax, dword [ebp - 0x5c]
sub eax, 0x664ddd9f
je 0x407725
jmp 0x406e6b
mov eax, dword [ebp - 0x5c]
sub eax, 0x6784bffb
je 0x40742d
jmp 0x406e7e
mov eax, dword [ebp - 0x5c]
sub eax, 0x682da86d
je 0x4073a6
jmp 0x406e91
mov eax, dword [ebp - 0x5c]
sub eax, 0x70b796cf
je 0x4075eb
jmp 0x406ea4
mov eax, dword [ebp - 0x5c]
sub eax, 0x718170e5
je 0x407510
jmp 0x406eb7
mov eax, dword [ebp - 0x5c]
sub eax, 0x72b5129f
je 0x407421
jmp 0x406eca
mov eax, dword [ebp - 0x5c]
sub eax, 0x79fc040b
je 0x40734c
jmp 0x406edd
mov eax, dword [ebp - 0x5c]
sub eax, 0x7b1ce36d
je 0x407754
jmp 0x406ef0
mov eax, dword [ebp - 0x5c]
sub eax, 0x7f27afd6
je 0x4070a7
jmp 0x406f03
jmp 0x40778e
mov eax, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x58]
push eax
mov edx, esp
mov dword [ebp - 0x3c], edx
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 - 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 - 0x4c], eax
mov dword [ebp - 0x50], 0xfc4f9b8d
jmp 0x40778e
mov edx, 0xffffffff
mov eax, 0x7f27afd6
mov ecx, 0xd24fbf40
cmp dword [ebp - 0x4c], edx
cmove eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov ecx, dword [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
sub edx, 0xdf55396
sub edx, 1
add edx, 0xdf55396
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, 0x664ddd9f
mov ecx, 0x9960b2b7
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov byte [ebp - 0x3d], 0
mov ecx, dword [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
sub edx, 0x45f3e0e1
sub edx, 1
add edx, 0x45f3e0e1
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, 0x664ddd9f
mov ecx, 0x3c503db4
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0xef2d7615
jmp 0x40778e
mov dword [ebp - 0x50], 0xe9e362c
jmp 0x40778e
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 ecx, eax
mov eax, dword [ebp - 0x3c]
mov dword [eax], ecx
mov dword [ebp - 0x50], 0xfd81e2c7
jmp 0x40778e
mov edx, dword [ebp - 0x3c]
mov esi, 0xffffffff
mov eax, 0xc56655a
mov ecx, 0xfeb3a95c
cmp dword [edx], esi
cmove eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov eax, dword [0x43955c]
mov ecx, dword [0x439558]
mov edx, eax
sub edx, 0xd85f7566
sub edx, 1
add edx, 0xd85f7566
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, 0x254bc447
mov ecx, 0xc515cc06
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
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 [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
sub edx, 0xc0a52932
sub edx, 1
add edx, 0xc0a52932
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, 0x254bc447
mov ecx, 0xa31bfafc
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0x277a02bf
jmp 0x40778e
mov dword [ebp - 0x50], 0xe9e362c
jmp 0x40778e
mov eax, dword [ebp - 0x38]
mov byte [eax], 0
mov dword [ebp - 0x50], 0x5331bd96
jmp 0x40778e
mov dword [ebp - 0x50], 0x9b405ed2
jmp 0x40778e
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x2c]
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 dword [ebp - 0x28], eax
mov dword [ebp - 0x50], 0xb12f2afb
jmp 0x40778e
mov ecx, dword [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
sub edx, 0xf5786b60
sub edx, 1
add edx, 0xf5786b60
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, 0x7b1ce36d
mov ecx, 0x35491b7f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov eax, dword [ebp - 0x28]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x21], al
mov eax, dword [0x43955c]
mov ecx, dword [0x439558]
mov edx, eax
add edx, 0xfb610cc3
sub edx, 1
sub edx, 0xfb610cc3
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, 0x7b1ce36d
mov ecx, 0xfbd39348
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dl, byte [ebp - 0x21]
mov eax, 0x79fc040b
mov ecx, 0x871f6bb5
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0x4ec23055
jmp 0x40778e
mov eax, dword [0x43955c]
mov ecx, dword [0x439558]
mov edx, eax
sub edx, 0xfe249a66
sub edx, 1
add edx, 0xfe249a66
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, 0x31f711ed
mov ecx, 0x682da86d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
mov dword [ebp - 0x20], eax
mov ecx, dword [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
sub edx, 0x4348e7
sub edx, 1
add edx, 0x4348e7
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, 0x31f711ed
mov ecx, 0x72b5129f
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0x6784bffb
jmp 0x40778e
mov eax, dword [0x43955c]
mov ecx, dword [0x439558]
mov edx, eax
sub edx, 0xe72e55ea
sub edx, 1
add edx, 0xe72e55ea
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, 0xfe258b7f
mov ecx, 0x8cb7ea79
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov eax, dword [ebp - 0x20]
cmp eax, 0
sete al
and al, 1
mov byte [ebp - 0x19], al
mov eax, dword [0x43955c]
mov ecx, dword [0x439558]
mov edx, eax
sub edx, 0x1c3da36
sub edx, 1
add edx, 0x1c3da36
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, 0xfe258b7f
mov ecx, 0x3a624db
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dl, byte [ebp - 0x19]
mov eax, 0x718170e5
mov ecx, 0x1516feae
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
mov dword [ebp - 0x50], 0x591cd1b
jmp 0x40778e
mov dword [ebp - 0x50], 0x4ec23055
jmp 0x40778e
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
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]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x50], 0xc9a29bbb
jmp 0x40778e
mov edx, dword [ebp - 0x18]
mov eax, 0xa474b56a
mov ecx, 0xb82da51
cmp edx, 0
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0x4ec23055
jmp 0x40778e
mov ecx, dword [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
add edx, 0x89c5921b
sub edx, 1
sub edx, 0x89c5921b
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, 0x92210b5e
mov ecx, 0x70b796cf
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
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 - 0x12], al
mov ecx, dword [0x43955c]
mov eax, dword [0x439558]
mov edx, ecx
add edx, 0xb4e352b4
sub edx, 1
sub edx, 0xb4e352b4
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, 0x92210b5e
mov ecx, 0xd774e195
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0x9ebf413b
jmp 0x40778e
mov dl, byte [ebp - 0x12]
mov eax, 0xf858939f
mov ecx, 0x554e0829
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x50], eax
jmp 0x40778e
mov dword [ebp - 0x50], 0x4ec23055
jmp 0x40778e
mov dword [ebp - 0x50], 0x9b405ed2
jmp 0x40778e
mov eax, dword [ebp - 0x4c]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x3c]
mov eax, dword [eax]
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 - 0x3d], al
mov dword [ebp - 0x50], 0xab19821b
jmp 0x40778e
mov dword [ebp - 0x50], 0xe9e362c
jmp 0x40778e
mov al, byte [ebp - 0x3d]
and al, 1
mov byte [ebp - 0x11], al
mov dword [ebp - 0x50], 0x9c81c28c
jmp 0x40778e
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.00421e20
mov eax, dword [ebp - 0x60]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [ebp - 0x3d], 0
mov dword [ebp - 0x50], 0x9960b2b7
jmp 0x40778e
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 - 0x50], 0xc515cc06
jmp 0x40778e
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x50], 0x35491b7f
jmp 0x40778e
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], 0x682da86d
jmp 0x40778e
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x50], 0x8cb7ea79
jmp 0x40778e
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], 0x70b796cf
jmp 0x406b96