Function at 0x44f190
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
xor ebx, ebx
push edi
mov esi, ecx
cmp dword [ebp + 8], ebx
je 0x44f1d3
mov eax, dword [esi + 0x9c]
cmp eax, 0xffffffff
je 0x44f1b7
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
mov eax, esi
mov dword [esi + 0x9c], 0xffffffff
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x84]
cmp eax, 1
je 0x44f7db
cmp eax, 4
je 0x44f7db
cmp eax, 3
jne 0x44f7c3
cmp dword [esi + 0x80], ebx
jne 0x44f209
call fcn.00450470
test eax, eax
je 0x44fc63
cmp byte [esi + 0xd4], bl
je 0x44f532
cmp dword [esi + 0xa4], ebx
jne 0x44f240
mov eax, dword [esi + 0xd0]
push eax
call fcn.004576a9
add esp, 4
mov dword [esi + 0xa4], eax
mov dword [esi + 0xd8], eax
jmp 0x44f240
or edi, 0xffffffff
cmp dword [esi + 0xdc], ebx
jne 0x44f2c2
mov eax, dword [esi + 0x9c]
cmp eax, edi
je 0x44f2c2
mov edx, dword [esi + 0xd0]
push ebx
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esi + 0xa4]
push edx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44f4eb
mov eax, dword [esp + 0x14]
add dword [esi + 0x120], eax
mov edx, dword [esi + 0xa4]
mov dword [esi + 0xd8], edx
adc dword [esi + 0x124], ebx
mov dword [esi + 0xdc], eax
cmp eax, dword [esi + 0xd0]
jae 0x44f2c2
mov eax, dword [esi + 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esi + 0x128], 0
mov dword [esi + 0x9c], edi
jne 0x44fc63
cmp dword [esi + 0xe8], ebx
jne 0x44f2f0
mov eax, dword [esi + 0xd0]
cmp dword [esi + 0xa8], eax
jb 0x44f2f0
mov ecx, dword [esi + 0xa0]
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xe4], ecx
mov dword [esi + 0xe8], eax
mov dword [esp + 0x10], ebx
cmp dword [esi + 0xe8], ebx
je 0x44f3c8
xor edx, edx
cmp dword [esi + 0x9c], edi
lea eax, [esi + 0xd8]
setne dl
mov dword [esi + 0xe0], ebx
mov dword [esi + 0xec], ebx
dec edx
and edx, 4
push edx
push eax
call fcn.004543a0
mov ecx, dword [esi + 0xe0]
mov edx, dword [esi + 0xec]
add esp, 8
add dword [esi + 0x110], ecx
mov dword [esp + 0x10], eax
adc dword [esi + 0x114], ebx
add dword [esi + 0x118], edx
adc dword [esi + 0x11c], ebx
cmp eax, 1
jne 0x44f3c0
cmp dword [esi + 0x9c], edi
jne 0x44fa7e
mov eax, dword [esi + 0xd0]
sub eax, dword [esi + 0xa8]
sub eax, dword [esi + 0xe8]
jne 0x44f3c8
cmp byte [esi + 0x128], 0
jne 0x44fc63
cmp dword [esi + 0xc4], 0
jne 0x44f6df
cmp dword [esi + 0xc8], 0
jne 0x44f6df
mov eax, esi
call fcn.0040a480
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, ebx
jne 0x44fa7e
mov edi, dword [esi + 0xd0]
mov eax, edi
sub eax, dword [esi + 0xe8]
sub eax, dword [esi + 0xa8]
je 0x44f240
cmp eax, edi
jae 0x44f3e8
mov edi, eax
mov ecx, dword [esi + 0x8c]
xor edx, edx
call fcn.0041af20
mov ebx, eax
mov ecx, ebx
and ecx, edx
mov dword [esp + 0x1c], edx
cmp ecx, 0xffffffff
je 0x44f421
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44f421
mov eax, edi
cdq
cmp edx, dword [esp + 0x1c]
jl 0x44f421
jg 0x44f41f
cmp eax, ebx
jbe 0x44f421
mov edi, ebx
test edi, edi
je 0x44fc63
mov eax, dword [esi + 0xa0]
add eax, dword [esi + 0xa8]
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
push 0
push edi
push eax
mov ecx, esi
call edx
mov ecx, eax
cmp ecx, 0xffffffff
je 0x44f510
and ebx, dword [esp + 0x1c]
cmp ebx, 0xffffffff
je 0x44f477
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44f477
mov edi, dword [esi + 0x8c]
mov eax, ecx
cdq
add dword [edi + 0x9c0], eax
adc dword [edi + 0x9c4], edx
mov eax, dword [esi + 0x8c]
mov eax, dword [eax + 0x54]
call fcn.00446f30
add dword [esi + 0xa8], ecx
cmp dword [esi + 0xdc], 0
mov ecx, dword [esi + 0xa8]
mov byte [esi + 0xc0], 1
jne 0x44f4c9
cmp dword [esi + 0x9c], 0xffffffff
jne 0x44f4c9
mov eax, dword [esi + 0xe8]
test eax, eax
je 0x44f4c9
add eax, ecx
cmp eax, dword [esi + 0xd0]
jne 0x44f4c9
cmp dword [esp + 0x10], 1
je 0x44f378
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x44fab2
xor ebx, ebx
jmp 0x44f240
mov edx, dword [esi + 0x9c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 3
mov eax, esi
mov dword [esi + 0x9c], edi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x44fc63
push 1
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0x9c]
cmp ecx, 0xffffffff
jne 0x44f549
cmp dword [esi + 0xa8], ebx
je 0x44f378
mov eax, dword [esi + 0xa8]
mov edx, dword [esi + 0xd0]
sub edx, eax
je 0x44f5c6
cmp ecx, 0xffffffff
je 0x44f5c6
push ebx
lea edi, [esp + 0x14]
push edi
push edx
mov edx, dword [esi + 0xa0]
add edx, eax
push edx
push ecx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x44f714
mov eax, dword [esp + 0x10]
cmp eax, ebx
jne 0x44f5ae
mov eax, dword [esi + 0x9c]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi + 0x9c], 0xffffffff
cmp dword [esi + 0xa8], ebx
je 0x44f73d
mov eax, dword [esp + 0x10]
jmp 0x44f5ba
add dword [esi + 0x120], eax
adc dword [esi + 0x124], ebx
add eax, dword [esi + 0xa8]
mov dword [esi + 0xa8], ebx
mov dword [esp + 0x10], eax
mov dword [esi + 0xa8], ebx
cmp eax, dword [esi + 0xd0]
jae 0x44f5f3
mov ecx, dword [esi + 0x9c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
mov dword [esi + 0x9c], 0xffffffff
mov ecx, dword [esi + 0x8c]
xor edx, edx
mov edi, eax
call fcn.0041af20
mov ebx, eax
and eax, edx
mov dword [esp + 0x1c], edx
cmp eax, 0xffffffff
je 0x44f62c
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44f62c
mov eax, edi
cdq
cmp edx, dword [esp + 0x1c]
jl 0x44f62c
jg 0x44f62a
cmp eax, ebx
jbe 0x44f62c
mov edi, ebx
test edi, edi
je 0x44f786
mov edx, dword [esi]
mov eax, dword [esi + 0xa0]
mov edx, dword [edx + 0x18]
push 0
push edi
push eax
mov ecx, esi
call edx
mov edi, eax
cmp edi, 0xffffffff
je 0x44f799
mov eax, dword [esp + 0x10]
cmp edi, eax
jae 0x44f67c
mov ecx, dword [esi + 0xa0]
sub eax, edi
push eax
lea eax, [ecx + edi]
push eax
push ecx
call fcn.00459780
mov ecx, dword [esp + 0x1c]
add esp, 0xc
sub ecx, edi
mov dword [esi + 0xa8], ecx
and ebx, dword [esp + 0x1c]
cmp ebx, 0xffffffff
je 0x44f6a6
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44f6a6
mov ecx, dword [esi + 0x8c]
mov eax, edi
cdq
add dword [ecx + 0x9c0], eax
adc dword [ecx + 0x9c4], edx
mov edx, dword [esi + 0x8c]
mov eax, dword [edx + 0x54]
mov ecx, edi
call fcn.00446f30
push 0
push 0
push 0
push 0
lea eax, [esp + 0x34]
push eax
mov byte [esi + 0xc0], 1
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x44fab2
xor ebx, ebx
jmp 0x44f532
mov eax, esi
call fcn.0040a480
test eax, eax
jne 0x44f6fa
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x44fc63
push 0
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [esi + 0x9c]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 3
mov eax, esi
mov dword [esi + 0x9c], 0xffffffff
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp byte [esi + 0x128], 0
jne 0x44fc63
cmp dword [esi + 0xc4], ebx
jne 0x44f75a
cmp dword [esi + 0xc8], ebx
je 0x44f775
mov eax, esi
call fcn.0040a480
test eax, eax
jne 0x44f775
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x44fc63
push ebx
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esp + 0x10]
mov dword [esi + 0xa8], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x44f7b0
mov eax, dword [esi + 0x9c]
jmp 0x44f1b0
mov ecx, dword [esp + 0x10]
mov dword [esi + 0xa8], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp eax, ebx
jne 0x44fc63
mov byte [esi + 0x129], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x80], ebx
jne 0x44f7f0
call fcn.00450470
test eax, eax
je 0x44fc63
cmp byte [esi + 0xd4], bl
je 0x44fac7
cmp dword [esi + 0xa0], ebx
jne 0x44f837
mov edx, dword [esi + 0xd0]
push edx
call fcn.004576a9
mov dword [esi + 0xa0], eax
mov dword [esi + 0xd8], eax
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0xd0]
add esp, 4
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xe8], eax
cmp dword [esi + 0xdc], ebx
jne 0x44f858
mov eax, dword [esi + 0x58]
cmp eax, ebx
je 0x44f858
mov dword [esi + 0xd8], eax
mov ecx, dword [eax + 0x2000]
mov dword [esi + 0xdc], ecx
cmp dword [esi + 0xe8], ebx
jne 0x44f886
mov eax, dword [esi + 0xd0]
cmp dword [esi + 0xa8], eax
jb 0x44f886
mov edx, dword [esi + 0xa0]
mov dword [esi + 0xa8], ebx
mov dword [esi + 0xe4], edx
mov dword [esi + 0xe8], eax
mov dword [esp + 0x10], ebx
cmp dword [esi + 0xe8], ebx
je 0x44f95d
mov eax, dword [esi + 0x58]
mov dword [esi + 0xe0], ebx
mov dword [esi + 0xec], ebx
cmp eax, ebx
je 0x44f8b5
cmp dword [eax + 0x2004], ebx
je 0x44f8b5
xor eax, eax
jmp 0x44f8ba
mov eax, 4
push eax
lea eax, [esi + 0xd8]
push eax
call fcn.004543a0
xor ecx, ecx
mov edx, eax
mov eax, dword [esi + 0xe0]
add esp, 8
add dword [esi + 0x120], eax
mov dword [esp + 0x10], edx
adc dword [esi + 0x124], ecx
add dword [esi + 0x110], eax
adc dword [esi + 0x114], ecx
mov ecx, dword [esi + 0xec]
add dword [esi + 0x118], ecx
adc dword [esi + 0x11c], ebx
cmp edx, 1
jne 0x44f934
mov eax, dword [esi + 0x58]
cmp eax, ebx
je 0x44f91a
cmp dword [eax + 0x2004], ebx
jne 0x44fa77
mov edx, dword [esi + 0xd0]
sub edx, dword [esi + 0xa8]
sub edx, dword [esi + 0xe8]
je 0x44fc0f
jmp 0x44f93c
cmp edx, ebx
jne 0x44fa77
cmp dword [esi + 0xdc], ebx
jne 0x44f95d
mov eax, dword [esi + 0x58]
cmp eax, ebx
je 0x44f95d
mov ecx, dword [eax + 0x2004]
push eax
mov dword [esi + 0x58], ecx
call fcn.004593e2
add esp, 4
mov edi, dword [esi + 0xd0]
mov eax, edi
sub eax, dword [esi + 0xe8]
sub eax, dword [esi + 0xa8]
je 0x44f837
cmp eax, edi
jae 0x44f97d
mov edi, eax
mov ecx, dword [esi + 0x8c]
xor edx, edx
call fcn.0041af20
mov ebx, eax
and eax, edx
mov dword [esp + 0x1c], edx
cmp eax, 0xffffffff
je 0x44f9b4
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44f9b4
mov eax, edi
cdq
cmp edx, dword [esp + 0x1c]
jl 0x44f9b4
jg 0x44f9b2
cmp eax, ebx
jbe 0x44f9b4
mov edi, ebx
test edi, edi
je 0x44fc63
mov eax, dword [esi + 0xa8]
add eax, dword [esi + 0xa0]
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
push 0
push edi
push eax
mov ecx, esi
call edx
mov ecx, eax
cmp ecx, 0xffffffff
je 0x44fa90
and ebx, dword [esp + 0x1c]
cmp ebx, 0xffffffff
je 0x44fa0a
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44fa0a
mov edi, dword [esi + 0x8c]
mov eax, ecx
cdq
add dword [edi + 0x9c0], eax
adc dword [edi + 0x9c4], edx
mov eax, dword [esi + 0x8c]
mov eax, dword [eax + 0x54]
call fcn.00446f30
add dword [esi + 0xa8], ecx
cmp dword [esi + 0xdc], 0
mov ecx, dword [esi + 0xa8]
mov byte [esi + 0xc0], 1
jne 0x44fa59
cmp dword [esi + 0x58], 0
jne 0x44fa59
mov eax, dword [esi + 0xe8]
test eax, eax
je 0x44fa59
add eax, ecx
cmp eax, dword [esi + 0xd0]
jne 0x44fa59
cmp dword [esp + 0x10], 1
je 0x44fc0f
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x34]
push ecx
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x44fab2
xor ebx, ebx
jmp 0x44f837
mov eax, esi
call fcn.0040a480
push 6
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x44fc63
push 1
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, 2
mov ebx, esi
call fcn.0040a6e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [esi + 0x58], ebx
je 0x44fc0f
mov eax, dword [esi + 0x58]
cmp dword [eax + 0x2000], 0
je 0x44fc0f
mov eax, dword [eax + 0x2000]
sub eax, dword [esi + 0xa8]
mov edi, dword [esi + 0xd0]
cmp eax, edi
jae 0x44faf8
mov edi, eax
mov ecx, dword [esi + 0x8c]
xor edx, edx
call fcn.0041af20
mov ebx, eax
and eax, edx
mov dword [esp + 0x1c], edx
cmp eax, 0xffffffff
je 0x44fb2f
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44fb2f
mov eax, edi
cdq
cmp edx, dword [esp + 0x1c]
jl 0x44fb2f
jg 0x44fb2d
cmp eax, ebx
jbe 0x44fb2f
mov edi, ebx
test edi, edi
je 0x44fc63
mov eax, dword [esi + 0xa8]
add eax, dword [esi + 0x58]
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
push 0
push edi
push eax
mov ecx, esi
call edx
mov ecx, eax
cmp ecx, 0xffffffff
je 0x44fa90
and ebx, dword [esp + 0x1c]
cmp ebx, 0xffffffff
je 0x44fb82
mov eax, esi
call fcn.0040a930
cmp eax, 6
je 0x44fb82
mov ebx, dword [esi + 0x8c]
mov eax, ecx
cdq
add dword [ebx + 0x9c0], eax
adc dword [ebx + 0x9c4], edx
mov eax, dword [esi + 0x8c]
mov eax, dword [eax + 0x54]
call fcn.00446f30
mov byte [esi + 0xc0], 1
cmp ecx, edi
jge 0x44fba3
add dword [esi + 0xa8], ecx
jmp 0x44fba9
add dword [esi + 0xa8], edi
mov eax, ecx
mov ecx, dword [esi + 0xa8]
cdq
add dword [esi + 0x120], eax
mov eax, dword [esi + 0x58]
adc dword [esi + 0x124], edx
cmp ecx, dword [eax + 0x2000]
jne 0x44fbeb
mov edx, dword [eax + 0x2004]
push eax
mov dword [esi + 0x58], edx
call fcn.004593e2
add esp, 4
cmp dword [esi + 0x58], 0
mov dword [esi + 0xa8], 0
je 0x44fc0f
push 0
push 0
push 0
push 0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x44fab2
cmp dword [esi + 0x58], eax
jne 0x44fad0
cmp byte [esi + 0x128], 0
jne 0x44fc63
cmp dword [esi + 0xc4], 0
jne 0x44fc43
cmp dword [esi + 0xc8], 0
jne 0x44fc43
mov eax, esi
call fcn.0040a480
push 0
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, esi
call fcn.0040a480
test eax, eax
jne 0x44fc5a
call sub.WS2_32.dll_WSAGetLastError
cmp eax, 0x2733
je 0x44fc63
push 0
mov eax, esi
call fcn.00451020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4