Function at 0x410a80
Capabilities:
Contain obfuscated stackstrings
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov dword [esp + 4], 0x45a6e1
mov dword [esp], 0x45a6e5
call dword [sym.imp.msvcrt.dll__tempnam]
mov edi, dword [sym.imp.msvcrt.dll_fopen]
mov dword [esp + 4], 0x45b139
mov esi, eax
mov dword [esp], eax
mov dword [ebp - 0x60], edi
call edi
mov dword [esp + 4], 0x2b9
mov dword [esp], 0x45a2c0
mov ebx, eax
call fcn.0044c860
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Cant_open_test_file._n
setne al
mov dword [esp], eax
call fcn.0044cad0
mov eax, dword [sym.imp.msvcrt.dll_fwrite]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x42
mov dword [esp + 4], 1
mov dword [esp], str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
mov dword [ebp - 0x5c], eax
call eax
mov eax, dword [sym.imp.msvcrt.dll_fclose]
mov dword [esp], ebx
mov dword [ebp - 0x50], eax
call eax
mov dword [esp + 4], 0x45b429
mov dword [esp], esi
call edi
mov dword [esp + 4], 0x2bf
mov dword [esp], 0x45a2c0
mov ebx, eax
call fcn.0044c860
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Cant_open_test_file._n
setne al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov eax, dword [sym.imp.msvcrt.dll_fread]
mov dword [esp + 8], 0x10
mov dword [esp + 4], 1
mov dword [ebp - 0x4c], eax
call eax
mov ecx, dword [sym.imp.msvcrt.dll__fileno]
mov dword [esp], ebx
mov dword [ebp - 0x58], ecx
call ecx
mov dword [esp + 8], 0
mov edi, dword [sym.imp.msvcrt.dll__lseek]
mov dword [esp + 4], 0
mov dword [esp], eax
call edi
mov ecx, dword [sym.imp.msvcrt.dll_fflush]
mov dword [esp], ebx
mov dword [ebp - 0x54], ecx
call ecx
mov dword [esp + 4], 0x2c6
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x64], eax
call fcn.0044c860
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], 0x45b8c1
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea edx, [ebp - 0x30]
mov dword [esp + 0xc], ebx
mov eax, dword [ebp - 0x4c]
mov dword [esp], edx
mov dword [ebp - 0x30], 0x3f3f3f3f
mov dword [ebp - 0x2c], 0x3f3f3f3f
mov dword [ebp - 0x28], 0x3f3f3f3f
mov dword [ebp - 0x24], 0x3f3f3f3f
mov dword [ebp - 0x20], 0x3f3f3f3f
mov dword [ebp - 0x1c], 0x3f3f3f3f
mov dword [esp + 8], 0x18
mov dword [esp + 4], 1
call eax
mov dword [esp + 4], 0x2c9
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x40], eax
je 0x410f93
mov eax, 1
movsx edx, byte [ebp - 0x30]
xor eax, 1
mov dword [esp + 4], str.Got_unexpected_data___c__n
mov dword [esp], eax
mov dword [esp + 8], edx
call fcn.0044cad0
mov dword [esp], ebx
mov eax, dword [ebp - 0x58]
call eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call edi
mov dword [esp], 0
mov eax, dword [ebp - 0x54]
call eax
mov dword [esp + 4], 0x2ce
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x64], eax
call fcn.0044c860
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], 0x45b8c1
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
lea eax, [ebp - 0x30]
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x30], 0x3f3f3f3f
mov dword [ebp - 0x2c], 0x3f3f3f3f
mov dword [ebp - 0x28], 0x3f3f3f3f
mov dword [ebp - 0x24], 0x3f3f3f3f
mov dword [ebp - 0x20], 0x3f3f3f3f
mov dword [ebp - 0x1c], 0x3f3f3f3f
mov dword [esp + 8], 0x18
mov dword [esp + 4], 1
call eax
mov dword [esp + 4], 0x2d1
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x40], eax
je 0x410ff0
mov edx, 1
movsx eax, byte [ebp - 0x30]
mov dword [esp], edx
mov dword [esp + 4], str.Got_unexpected_data___c__n
mov dword [esp + 8], eax
call fcn.0044cad0
mov dword [esp], ebx
mov eax, dword [ebp - 0x58]
call eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call edi
call dword [sym.imp.msvcrt.dll__flushall]
mov dword [esp + 4], 0x2d6
mov dword [esp], 0x45a2c0
mov edi, eax
call fcn.0044c860
mov dword [esp + 8], edi
not edi
shr edi, 0x1f
mov dword [esp + 4], str.unexpected_ret__d_n
mov dword [esp], edi
call fcn.0044cad0
lea eax, [ebp - 0x30]
mov dword [esp + 0xc], ebx
mov dword [esp], eax
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x30], 0x3f3f3f3f
mov dword [ebp - 0x2c], 0x3f3f3f3f
mov dword [ebp - 0x28], 0x3f3f3f3f
mov dword [ebp - 0x24], 0x3f3f3f3f
mov dword [ebp - 0x20], 0x3f3f3f3f
mov dword [ebp - 0x1c], 0x3f3f3f3f
mov dword [esp + 8], 0x18
mov dword [esp + 4], 1
call eax
mov dword [esp + 4], 0x2d9
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x40], eax
je 0x410fc0
mov eax, 1
movsx edx, byte [ebp - 0x30]
xor eax, 1
mov dword [esp + 4], str.Got_unexpected_data___c__n
mov dword [esp], eax
mov dword [esp + 8], edx
call fcn.0044cad0
mov dword [esp], ebx
mov eax, dword [ebp - 0x50]
call eax
mov dword [esp], esi
mov edi, dword [sym.imp.msvcrt.dll__unlink]
call edi
mov edx, dword [ebp - 0x60]
mov dword [esp], esi
mov dword [esp + 4], 0x45b139
call edx
mov dword [esp + 4], 0x2e0
mov dword [esp], 0x45a2c0
mov ebx, eax
call fcn.0044c860
xor eax, eax
test ebx, ebx
mov dword [esp + 4], str.Cant_open_test_file._n
setne al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 0xc], ebx
mov edx, dword [ebp - 0x5c]
mov dword [esp + 8], 0x42
mov dword [esp + 4], 1
mov dword [esp], str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_
call edx
mov edx, dword [ebx + 0x10]
mov dword [ebx + 0x10], 0xffffffff
mov dword [esp + 4], 0x2e5
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x58], edx
call fcn.0044c860
mov dword [esp + 4], str.buffer_is_empty_n
mov eax, dword [ebx]
sub eax, dword [ebx + 8]
mov dword [esp], eax
call fcn.0044cad0
mov ecx, dword [ebp - 0x54]
mov dword [esp], ebx
call ecx
mov dword [esp + 4], 0x2e7
mov dword [esp], 0x45a2c0
mov dword [ebp - 0x4c], eax
call fcn.0044c860
mov eax, dword [ebp - 0x4c]
mov dword [esp + 4], str.expected_EOF__got__d_n
cmp eax, 0xffffffff
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x2e8
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov dword [esp + 4], str.buffer_should_be_empty_n
xor eax, eax
mov edx, dword [ebx + 8]
cmp dword [ebx], edx
sete al
mov dword [esp], eax
call fcn.0044cad0
mov dword [esp + 4], 0x2e9
mov dword [esp], 0x45a2c0
call fcn.0044c860
mov eax, dword [ebx + 4]
mov dword [esp + 4], str.tempfh___cnt___d_n
test eax, eax
mov dword [esp + 8], eax
sete al
movzx eax, al
mov dword [esp], eax
call fcn.0044cad0
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x50]
mov dword [ebx + 0x10], edx
mov dword [esp], ebx
call eax
mov dword [esp], esi
call edi
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_free]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x3c], eax
jne 0x410c49
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], eax
jne 0x410c49
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jne 0x410c49
xor eax, eax
jmp 0x410c4e
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x3c], eax
jne 0x410e09
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], eax
jne 0x410e09
mov eax, dword [ebp - 0x24]
cmp dword [ebp - 0x34], eax
jne 0x410e09
xor eax, eax
jmp 0x410e0e
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x3c], eax
jne 0x410d31
mov eax, dword [ebp - 0x28]
cmp dword [ebp - 0x38], eax
jne 0x410d31
mov eax, dword [ebp - 0x24]
xor edx, edx
cmp dword [ebp - 0x34], eax
jne 0x410d31
jmp 0x410d36