Function at 0x404310
Capabilities:
Get file size
Print debug messages
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x458b9f
mov eax, dword fs:[0]
push eax
sub esp, 0x280
mov eax, dword [0x4754f4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, edx
lea edx, [ebp - 0xf4]
push edx
mov dword [ebp - 0x284], eax
mov dword [ebp - 0x280], ecx
call fcn.00406610
lea eax, [ebp - 0xf4]
push eax
lea esi, [ebp - 0x34]
call fcn.00414a80
add esp, 4
xor esi, esi
mov dword [ebp - 4], esi
cmp dword [ebp - 0xdc], 8
jb 0x40438a
mov ecx, dword [ebp - 0xf0]
push ecx
call fcn.00425770
add esp, 4
lea eax, [ebp - 0xf4]
xor edx, edx
push eax
mov dword [ebp - 0xdc], 7
mov dword [ebp - 0xe0], esi
mov word [ebp - 0xf0], dx
call fcn.00409010
cmp dword [ebp - 0x1c], 0x10
mov eax, dword [ebp - 0x30]
jae 0x4043bb
lea eax, [ebp - 0x30]
push esi
lea ecx, [ebp - 0x27c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_OpenFile]
mov ebx, eax
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
lea edx, [edi + 1]
push edx
call fcn.004217c0
add esp, 4
push 0
mov esi, eax
lea eax, [ebp - 0x288]
push eax
push edi
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
lea ecx, [ebp - 0xb4]
call fcn.00406880
lea ecx, [ebp - 0x1f4]
mov byte [ebp - 4], 1
call fcn.00401430
mov ecx, dword [ebp - 0x284]
push 1
push ecx
lea ebx, [ebp - 0x1f4]
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00402eb0
push esi
call fcn.00425750
add esp, 4
lea edx, [ebp - 0x154]
push edx
lea eax, [ebp - 0x74]
push eax
call fcn.00414c30
mov esi, dword [ebp - 0x280]
lea ecx, [esi + 0xa0]
push ecx
lea edx, [ebp - 0x94]
push edx
mov byte [ebp - 4], 3
call fcn.00414c30
add esp, 0x10
push 1
push 0x466cb8
xor eax, eax
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 4
call fcn.00408450
cmp eax, 0xffffffff
jne 0x404732
push 0x46686a
lea ecx, [ebp - 0x54]
call fcn.00406880
mov byte [ebp - 4], 5
mov ebx, dword [ebp - 0x90]
mov eax, 8
cmp dword [ebp - 0x7c], eax
jae 0x4044b0
lea ebx, [ebp - 0x90]
mov ecx, dword [ebp - 0x70]
cmp dword [ebp - 0x5c], eax
jae 0x4044bb
lea ecx, [ebp - 0x70]
call fcn.00404840
mov ecx, ebx
mov edi, eax
call fcn.00404840
sub eax, edi
je 0x40453e
push 1
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call fcn.00405150
mov esi, eax
lea edi, [ebp - 0x54]
mov byte [ebp - 4], 6
call fcn.00408600
mov edi, 0x10
mov byte [ebp - 4], 5
cmp dword [ebp - 0xbc], edi
jb 0x40450b
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.00425770
add esp, 4
xor ebx, ebx
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], ebx
mov byte [ebp - 0xd0], bl
call fcn.004089e0
push str.IsWriteNewKey_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x4046c3
push 0xa
lea edx, [ebp - 0xb4]
push edx
call fcn.00408930
cmp eax, 0xffffffff
je 0x404655
mov edi, 0x10
mov byte [ebp - 4], 4
cmp dword [ebp - 0x3c], edi
jb 0x40456f
mov eax, dword [ebp - 0x50]
push eax
call fcn.00425770
add esp, 4
xor ebx, ebx
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
call fcn.004089e0
mov byte [ebp - 4], 3
cmp dword [ebp - 0x7c], 8
jb 0x40459f
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.00425770
add esp, 4
lea eax, [ebp - 0x94]
xor edx, edx
mov esi, 7
push eax
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x80], ebx
mov word [ebp - 0x90], dx
call fcn.00409010
mov byte [ebp - 4], 2
cmp dword [ebp - 0x5c], 8
jb 0x4045d5
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.00425770
add esp, 4
lea eax, [ebp - 0x74]
xor edx, edx
push eax
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], ebx
mov word [ebp - 0x70], dx
call fcn.00409010
lea ecx, [ebp - 0x1f4]
mov byte [ebp - 4], 1
call fcn.00401500
mov byte [ebp - 4], bl
cmp dword [ebp - 0x9c], edi
jb 0x404613
mov ecx, dword [ebp - 0xb0]
push ecx
call fcn.00425770
add esp, 4
mov esi, 0xf
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0xa0], ebx
mov byte [ebp - 0xb0], bl
call fcn.004089e0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], edi
jb 0x40464d
mov edx, dword [ebp - 0x30]
push edx
call fcn.00425770
add esp, 4
mov dword [ebp - 0x1c], esi
jmp 0x404806
xor ebx, ebx
push ebx
lea eax, [ebp - 0xd4]
push eax
mov ecx, esi
call fcn.00405150
mov esi, eax
lea edi, [ebp - 0x54]
mov byte [ebp - 4], 7
call fcn.00408600
mov byte [ebp - 4], 5
cmp dword [ebp - 0xbc], 0x10
jb 0x404690
mov ecx, dword [ebp - 0xd0]
push ecx
call fcn.00425770
add esp, 4
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xbc], 0xf
mov dword [ebp - 0xc0], ebx
mov byte [ebp - 0xd0], bl
call fcn.004089e0
push str.Tels_is_not_update_n
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor ebx, ebx
mov edi, 0x10
mov eax, dword [ebp - 0x30]
cmp dword [ebp - 0x1c], edi
jae 0x4046ce
lea eax, [ebp - 0x30]
push 1
lea edx, [ebp - 0x27c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_OpenFile]
mov esi, eax
mov eax, dword [ebp - 0x50]
cmp dword [ebp - 0x3c], edi
jae 0x4046eb
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0x40]
push ebx
lea ecx, [ebp - 0x28c]
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 4], 4
cmp dword [ebp - 0x3c], edi
jb 0x40471b
mov eax, dword [ebp - 0x50]
push eax
call fcn.00425770
add esp, 4
lea ecx, [ebp - 0x54]
mov dword [ebp - 0x3c], 0xf
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x50], bl
call fcn.004089e0
jmp 0x404734
xor ebx, ebx
mov edi, 8
mov byte [ebp - 4], 3
cmp dword [ebp - 0x7c], edi
jb 0x404751
mov ecx, dword [ebp - 0x90]
push ecx
call fcn.00425770
add esp, 4
lea eax, [ebp - 0x94]
xor edx, edx
mov esi, 7
push eax
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x80], ebx
mov word [ebp - 0x90], dx
call fcn.00409010
mov byte [ebp - 4], 2
cmp dword [ebp - 0x5c], edi
jb 0x404786
mov ecx, dword [ebp - 0x70]
push ecx
call fcn.00425770
add esp, 4
lea eax, [ebp - 0x74]
xor edx, edx
push eax
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], ebx
mov word [ebp - 0x70], dx
call fcn.00409010
lea ecx, [ebp - 0x1f4]
mov byte [ebp - 4], 1
call fcn.00401500
mov esi, 0x10
mov byte [ebp - 4], bl
cmp dword [ebp - 0x9c], esi
jb 0x4047c9
mov ecx, dword [ebp - 0xb0]
push ecx
call fcn.00425770
add esp, 4
mov edi, 0xf
lea ecx, [ebp - 0xb4]
mov dword [ebp - 0x9c], edi
mov dword [ebp - 0xa0], ebx
mov byte [ebp - 0xb0], bl
call fcn.004089e0
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x1c], esi
jb 0x404803
mov edx, dword [ebp - 0x30]
push edx
call fcn.00425770
add esp, 4
mov dword [ebp - 0x1c], edi
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x20], ebx
mov byte [ebp - 0x30], bl
call fcn.004089e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00420d00
mov esp, ebp
pop ebp
ret 4