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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x50
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x50], eax
mov eax, dword [0x436080]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x4c], 0xc8e0793d
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x58], eax
sub eax, 0x812df258
je 0x407e46
jmp 0x4079cc
mov eax, dword [ebp - 0x58]
sub eax, 0x8bc44899
je 0x407fb9
jmp 0x4079df
mov eax, dword [ebp - 0x58]
sub eax, 0x97187536
je 0x407f4e
jmp 0x4079f2
mov eax, dword [ebp - 0x58]
sub eax, 0x98dfc670
je 0x4082e8
jmp 0x407a05
mov eax, dword [ebp - 0x58]
sub eax, 0x9a15d7c0
je 0x407f3e
jmp 0x407a18
mov eax, dword [ebp - 0x58]
sub eax, 0x9ed3ba37
je 0x408342
jmp 0x407a2b
mov eax, dword [ebp - 0x58]
sub eax, 0xabc0f347
je 0x4085c4
jmp 0x407a3e
mov eax, dword [ebp - 0x58]
sub eax, 0xb9c1df3a
je 0x407f23
jmp 0x407a51
mov eax, dword [ebp - 0x58]
sub eax, 0xbc9cc1b9
je 0x4084d3
jmp 0x407a64
mov eax, dword [ebp - 0x58]
sub eax, 0xbd4f753a
je 0x408479
jmp 0x407a77
mov eax, dword [ebp - 0x58]
sub eax, 0xbd65cb54
je 0x40821a
jmp 0x407a8a
mov eax, dword [ebp - 0x58]
sub eax, 0xc12e5b9b
je 0x40827f
jmp 0x407a9d
mov eax, dword [ebp - 0x58]
sub eax, 0xc3d662d9
je 0x408594
jmp 0x407ab0
mov eax, dword [ebp - 0x58]
sub eax, 0xc401d848
je 0x4084bf
jmp 0x407ac3
mov eax, dword [ebp - 0x58]
sub eax, 0xc48d0a0b
je 0x408546
jmp 0x407ad6
mov eax, dword [ebp - 0x58]
sub eax, 0xc81e7880
je 0x408360
jmp 0x407ae9
mov eax, dword [ebp - 0x58]
sub eax, 0xc8e0793d
je 0x407d61
jmp 0x407afc
mov eax, dword [ebp - 0x58]
sub eax, 0xd89e1545
je 0x4080a1
jmp 0x407b0f
mov eax, dword [ebp - 0x58]
sub eax, 0xd9ad703d
je 0x408122
jmp 0x407b22
mov eax, dword [ebp - 0x58]
sub eax, 0xe7db7bd3
je 0x4081ff
jmp 0x407b35
mov eax, dword [ebp - 0x58]
sub eax, 0xeb8f7be2
je 0x407e90
jmp 0x407b48
mov eax, dword [ebp - 0x58]
sub eax, 0xebde6408
je 0x40846d
jmp 0x407b5b
mov eax, dword [ebp - 0x58]
sub eax, 0xf12e6746
je 0x408163
jmp 0x407b6e
mov eax, dword [ebp - 0x58]
sub eax, 0xf4d77bb2
je 0x4085fd
jmp 0x407b81
mov eax, dword [ebp - 0x58]
sub eax, 0x5e57702
je 0x40813d
jmp 0x407b94
mov eax, dword [ebp - 0x58]
sub eax, 0x1ae42e54
je 0x4085f1
jmp 0x407ba7
mov eax, dword [ebp - 0x58]
sub eax, 0x21e28f4a
je 0x407e9c
jmp 0x407bba
mov eax, dword [ebp - 0x58]
sub eax, 0x229b11da
je 0x4085e5
jmp 0x407bcd
mov eax, dword [ebp - 0x58]
sub eax, 0x266227d7
je 0x408609
jmp 0x407be0
mov eax, dword [ebp - 0x58]
sub eax, 0x3370667d
je 0x408461
jmp 0x407bf3
mov eax, dword [ebp - 0x58]
sub eax, 0x36127a70
je 0x40822c
jmp 0x407c06
mov eax, dword [ebp - 0x58]
sub eax, 0x361f8814
je 0x408336
jmp 0x407c19
mov eax, dword [ebp - 0x58]
sub eax, 0x3833d0ec
je 0x408238
jmp 0x407c2c
mov eax, dword [ebp - 0x58]
sub eax, 0x39ccb628
je 0x408005
jmp 0x407c3f
mov eax, dword [ebp - 0x58]
sub eax, 0x3d0d6355
je 0x408149
jmp 0x407c52
mov eax, dword [ebp - 0x58]
sub eax, 0x3eb88c29
je 0x407f08
jmp 0x407c65
mov eax, dword [ebp - 0x58]
sub eax, 0x4a5104f0
je 0x407ea8
jmp 0x407c78
mov eax, dword [ebp - 0x58]
sub eax, 0x522cf550
je 0x4081b1
jmp 0x407c8b
mov eax, dword [ebp - 0x58]
sub eax, 0x52edbe3a
je 0x40848b
jmp 0x407c9e
mov eax, dword [ebp - 0x58]
sub eax, 0x54dd45c7
je 0x4085d6
jmp 0x407cb1
mov eax, dword [ebp - 0x58]
sub eax, 0x5641f4a0
je 0x408446
jmp 0x407cc4
mov eax, dword [ebp - 0x58]
sub eax, 0x573209df
je 0x40801d
jmp 0x407cd7
mov eax, dword [ebp - 0x58]
sub eax, 0x58cad2ad
je 0x407df8
jmp 0x407cea
mov eax, dword [ebp - 0x58]
sub eax, 0x6e0313a2
je 0x4083d3
jmp 0x407cfd
mov eax, dword [ebp - 0x58]
sub eax, 0x75446c6f
je 0x4085b4
jmp 0x407d10
mov eax, dword [ebp - 0x58]
sub eax, 0x785bd974
je 0x408011
jmp 0x407d23
mov eax, dword [ebp - 0x58]
sub eax, 0x798839d5
je 0x407d8b
jmp 0x407d36
mov eax, dword [ebp - 0x58]
sub eax, 0x7b9657aa
je 0x40829a
jmp 0x407d49
mov eax, dword [ebp - 0x58]
sub eax, 0x7f0b9721
je 0x40805b
jmp 0x407d5c
jmp 0x408610
push eax
mov eax, esp
mov dword [ebp - 0x34], eax
push eax
mov eax, esp
mov dword [ebp - 0x30], eax
push eax
sub esp, 0xffc
mov eax, esp
mov dword [ebp - 0x2c], eax
push eax
mov eax, esp
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x4c], 0x798839d5
jmp 0x408610
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
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 - 0x44], eax
mov edx, 0xffffffff
mov eax, 0x4a5104f0
mov ecx, 0x58cad2ad
cmp dword [ebp - 0x44], edx
cmove eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
mov edx, eax
add edx, 0xf11b638c
sub edx, 1
sub edx, 0xf11b638c
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, 0x75446c6f
mov ecx, 0x812df258
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov byte [ebp - 0x35], 0
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
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, 0x75446c6f
mov ecx, 0xeb8f7be2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dword [ebp - 0x4c], 0x21e28f4a
jmp 0x408610
mov dword [ebp - 0x4c], 0xc401d848
jmp 0x408610
mov eax, dword [ebp - 0x3c]
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 - 0x48], eax
mov eax, 0xffffffff
cmp dword [ebp - 0x48], eax
sete al
and al, 1
mov byte [ebp - 0x21], al
mov dword [ebp - 0x4c], 0x3eb88c29
jmp 0x408610
mov dl, byte [ebp - 0x21]
mov eax, 0x97187536
mov ecx, 0xb9c1df3a
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [ebp - 0x44]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x4c], 0x9a15d7c0
jmp 0x408610
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x4c], 0xc401d848
jmp 0x408610
mov ecx, dword [0x437554]
mov eax, dword [0x437550]
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, 0xabc0f347
mov ecx, 0x8bc44899
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [ebp - 0x34]
mov byte [eax], 0
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
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, 0xabc0f347
mov ecx, 0x39ccb628
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dword [ebp - 0x4c], 0x785bd974
jmp 0x408610
mov dword [ebp - 0x4c], 0x573209df
jmp 0x408610
mov ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x44]
mov eax, 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 dword [ebp - 0x20], eax
mov dword [ebp - 0x4c], 0x7f0b9721
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
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, 0x54dd45c7
mov ecx, 0xd89e1545
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [ebp - 0x20]
cmp eax, 0
setne al
and al, 1
mov byte [ebp - 0x1c], al
mov ecx, dword [0x437554]
mov eax, dword [0x437550]
mov edx, ecx
sub edx, 0xa853144b
sub edx, 1
add edx, 0xa853144b
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, 0x54dd45c7
mov ecx, 0xd9ad703d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dl, byte [ebp - 0x1c]
mov eax, 0x5e57702
mov ecx, 0x3d0d6355
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dword [ebp - 0x4c], 0xbd4f753a
jmp 0x408610
mov eax, dword [ebp - 0x28]
cmp dword [eax], 0
sete al
and al, 1
mov byte [ebp - 0x1b], al
mov dword [ebp - 0x4c], 0xf12e6746
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
mov edx, eax
sub edx, 0x8ca47f1f
sub edx, 1
add edx, 0x8ca47f1f
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, 0x229b11da
mov ecx, 0x522cf550
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
mov edx, eax
add edx, 0x3c53cc37
sub edx, 1
sub edx, 0x3c53cc37
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, 0x229b11da
mov ecx, 0xe7db7bd3
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dl, byte [ebp - 0x1b]
mov eax, 0x3833d0ec
mov ecx, 0xbd65cb54
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [ebp - 0x34]
mov byte [eax], 1
mov dword [ebp - 0x4c], 0x36127a70
jmp 0x408610
mov dword [ebp - 0x4c], 0xbd4f753a
jmp 0x408610
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x48]
mov eax, dword [ebp - 0x30]
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 - 0x4c], 0xc12e5b9b
jmp 0x408610
mov dl, byte [ebp - 0x1a]
mov eax, 0x7b9657aa
mov ecx, 0x9ed3ba37
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
mov edx, eax
sub edx, 0x9bd3d935
sub edx, 1
add edx, 0x9bd3d935
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, 0x1ae42e54
mov ecx, 0x98dfc670
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
mov edx, eax
add edx, 0xa65ecc36
sub edx, 1
sub edx, 0xa65ecc36
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, 0x1ae42e54
mov ecx, 0x361f8814
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dword [ebp - 0x4c], 0xbd4f753a
jmp 0x408610
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x28]
cmp eax, dword [ecx]
setne al
and al, 1
mov byte [ebp - 0x19], al
mov dword [ebp - 0x4c], 0xc81e7880
jmp 0x408610
mov ecx, dword [0x437554]
mov eax, dword [0x437550]
mov edx, ecx
add edx, 0x2b3eda8c
sub edx, 1
sub edx, 0x2b3eda8c
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, 0xf4d77bb2
mov ecx, 0x6e0313a2
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov ecx, dword [0x437554]
mov eax, dword [0x437550]
mov edx, ecx
add edx, 0xaa1e56cb
sub edx, 1
sub edx, 0xaa1e56cb
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, 0xf4d77bb2
mov ecx, 0x5641f4a0
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dl, byte [ebp - 0x19]
mov eax, 0xebde6408
mov ecx, 0x3370667d
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov dword [ebp - 0x4c], 0xbd4f753a
jmp 0x408610
mov dword [ebp - 0x4c], 0x573209df
jmp 0x408610
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x4c], 0x52edbe3a
jmp 0x408610
mov eax, dword [ebp - 0x18]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x48]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x34]
mov al, byte [eax]
and al, 1
mov byte [ebp - 0x35], al
mov dword [ebp - 0x4c], 0xc401d848
jmp 0x408610
mov al, byte [ebp - 0x35]
and al, 1
mov byte [ebp - 0x11], al
mov dword [ebp - 0x4c], 0xbc9cc1b9
jmp 0x408610
mov ecx, dword [0x437554]
mov eax, dword [0x437550]
mov edx, ecx
add edx, 0xffc2861a
sub edx, 1
sub edx, 0xffc2861a
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, 0x266227d7
mov ecx, 0xc48d0a0b
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov eax, dword [0x437554]
mov ecx, dword [0x437550]
mov edx, eax
sub edx, 0x1d9a9864
sub edx, 1
add edx, 0x1d9a9864
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, 0x266227d7
mov ecx, 0xc3d662d9
test dl, 1
cmovne eax, ecx
mov dword [ebp - 0x4c], eax
jmp 0x408610
mov al, byte [ebp - 0x11]
and al, 1
movzx eax, al
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004203b0
mov eax, dword [ebp - 0x5c]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov byte [ebp - 0x35], 0
mov dword [ebp - 0x4c], 0x812df258
jmp 0x408610
mov eax, dword [ebp - 0x34]
mov byte [eax], 0
mov dword [ebp - 0x4c], 0x8bc44899
jmp 0x408610
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x4c], 0xd89e1545
jmp 0x408610
mov dword [ebp - 0x4c], 0x522cf550
jmp 0x408610
mov dword [ebp - 0x4c], 0x98dfc670
jmp 0x408610
mov dword [ebp - 0x4c], 0x6e0313a2
jmp 0x408610
mov dword [ebp - 0x4c], 0xc48d0a0b
jmp 0x4079b6