Function at 0x4128c0
Capabilities:
Read file on windows

Disassembly:
push 0xffffffffffffffff
push 0x455a28
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
call dword [eax + 0x24]
mov ebp, eax
push ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esi + 0x44e]
mov dword [esp + 0x34], 0
test al, al
je 0x412b60
mov al, byte [esi + 0x43c]
test al, al
jne 0x412b59
mov al, byte [esi + 0x44d]
test al, al
jne 0x412b59
mov ecx, dword [esi + 0x2d0]
mov edx, dword [esi + 0x438]
lea edi, [esi + 0x440]
push 0
push edi
push 0x2000
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov eax, dword [edi]
jne 0x412a08
test eax, eax
je 0x41295d
mov byte [esi + 0x44d], 1
mov ecx, dword [esi + 0x450]
test ecx, ecx
je 0x412a1c
mov eax, dword [esi + 0x454]
mov edx, dword [esi + 0x458]
cmp eax, edx
jge 0x412a1c
mov ebx, dword [eax + ecx]
test ebx, ebx
je 0x412a1c
push 0
add eax, 4
push 0
push 0
mov dword [esi + 0x454], eax
call fcn.0043b7c0
mov ecx, dword [edi]
mov edx, dword [esi + 0x2d0]
push ecx
push edx
push eax
call fcn.0043b7c0
add esp, 0x18
cmp eax, ebx
jne 0x412a1c
mov eax, dword [edi]
xor edx, edx
mov ecx, eax
mov dword [esp + 0x10], eax
mov dh, byte [esp + 0x12]
and eax, 0xff00
shl ecx, 0x10
or ecx, eax
xor eax, eax
mov al, byte [edi + 3]
push 7
shl ecx, 8
or ecx, edx
push 0xc
or ecx, eax
mov byte [esp + 0x28], 7
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esi + 0xe8]
mov byte [esp + 0x2d], 5
mov dword [esp + 0x30], 0x2000000
call fcn.00438c80
jmp 0x412b35
test eax, eax
jne 0x41295d
mov byte [esi + 0x43c], 1
jmp 0x412b45
mov al, byte [esi + 0x44c]
mov ebp, 0x2400
xor bl, bl
mov dword [esp + 0x14], ebp
test al, al
je 0x412a86
mov edx, dword [edi]
mov eax, dword [esi + 0x2d0]
push edx
mov edx, dword [esi + 0x2d4]
lea ecx, [esp + 0x18]
push eax
push ecx
push edx
call fcn.0043b7a0
add esp, 0x10
test eax, eax
je 0x412a80
push eax
push str.S:UltraVNCwinvncwinvnc_vncclient.cpp_:_Compress_returned_error_in_File_Send_:_d_n
push 9
push 0x46f3bc
call fcn.00405970
add esp, 0x10
mov ecx, esi
mov byte [esi + 0x44d], 1
call fcn.00412b80
mov eax, dword [esp + 0x18]
push eax
jmp 0x412b61
mov ebp, dword [esp + 0x14]
mov bl, 1
mov eax, dword [edi]
cmp ebp, eax
mov dword [esp + 0x10], eax
jbe 0x412a92
xor bl, bl
mov cl, bl
mov byte [esp + 0x20], 7
neg cl
sbb ecx, ecx
mov byte [esp + 0x21], 5
and ecx, 0x1000000
test bl, bl
mov dword [esp + 0x24], ecx
je 0x412ad4
mov edx, ebp
mov eax, ebp
mov ecx, ebp
and edx, 0xff0000
shr eax, 0x10
and ecx, 0xff00
or edx, eax
shl ebp, 0x10
or ecx, ebp
shr edx, 8
shl ecx, 8
jmp 0x412af0
mov edx, eax
and eax, 0xff00
shl edx, 0x10
or edx, eax
xor eax, eax
mov ah, byte [esp + 0x12]
shl edx, 8
or edx, eax
xor ecx, ecx
mov cl, byte [edi + 3]
or edx, ecx
mov ecx, dword [esi + 0xe8]
mov dword [esp + 0x28], edx
push 7
lea edx, [esp + 0x24]
push 0xc
push edx
call fcn.00438c80
test bl, bl
je 0x412b1c
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0x2d4]
push eax
push ecx
jmp 0x412b26
mov edx, dword [edi]
mov eax, dword [esi + 0x2d0]
push edx
push eax
mov ecx, dword [esi + 0xe8]
call fcn.00438ce0
mov ebp, dword [esp + 0x18]
mov ecx, dword [edi]
mov eax, dword [esi + 0x444]
add eax, ecx
mov dword [esi + 0x444], eax
mov edx, dword [0x47fce4]
push 0
push esi
push edx
call fcn.004361d0
add esp, 0xc
jmp 0x412b60
mov ecx, esi
call fcn.00412b80
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x28
ret