Function at 0x447640
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov ebx, ecx
mov dword [esp + 0x10], edx
push esi
push edi
xor esi, esi
mov edi, dword [ebx]
mov edx, dword [ebx + 0x420]
mov dword [esp + 0x1c], edx
mov eax, dword [edi + 0xd34]
mov ecx, dword [edi + 0x138]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x608]
add eax, 0xfffffffd
mov dword [esp + 0xc], ecx
cmp eax, 3
ja case.default.0x44768a
mov dword [esp + 0x14], edi
jmp dword [eax*4 + 0x4479cc]
mov al, byte [ecx + 0xc]
and al, 0xf0
cmp al, 0x30
jne 0x447776
mov dword [ebx + 0x608], 6
mov esi, dword [ecx + 0x10]
push esi
push str.Remaining_length:__zd_bytes_n
push edi
call fcn.004511c0
xor eax, eax
add esp, 0xc
or dword [edi + 0xbb4], 0x40
mov dword [edi + 0xb88], esi
mov dword [edi + 0xb8c], eax
mov ecx, dword [esp + 0xc]
mov dword [edi + 0x98], eax
mov dword [edi + 0x9c], eax
mov dword [edi + 0x88], esi
mov dword [edi + 0x8c], eax
mov dword [ecx + 8], esi
mov eax, dword [ebx]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 8]
mov ecx, dword [edi + 0x91c]
cmp eax, ecx
mov dword [esp + 0x18], 0x38
cmovbe ecx, eax
mov eax, dword [esp + 0x1c]
xor edx, edx
cmp eax, dword [ebx + 0x424]
mov eax, dword [esp + 0x14]
sete dl
mov eax, dword [eax + 0x91c]
cmp ecx, eax
cmovb eax, ecx
lea ecx, [esp + 0x18]
push ecx
push eax
push dword [esp + 0x18]
mov eax, dword [ebx + edx*4 + 0x438]
push edx
push ebx
call eax
mov esi, eax
add esp, 0x14
test esi, esi
jns 0x4478dc
mov esi, dword [esp + 0x18]
test esi, esi
je 0x4478de
cmp esi, 0x51
jne 0x4479c2
push str.EEEE_AAAAGAIN_n
push edi
call fcn.004511c0
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x90
jne 0x4477d8
mov dword [ebx + 0x608], 4
xor ecx, ecx
mov dword [esp + 0x14], 0x38
cmp edx, dword [ebx + 0x424]
mov edx, 3
mov eax, dword [edi + 0x91c]
sete cl
mov dword [esp + 0x10], esi
cmp eax, edx
cmova eax, edx
lea edx, [esp + 0x14]
push edx
push eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [ebx + ecx*4 + 0x438]
push ecx
push ebx
call eax
add esp, 0x14
test eax, eax
jns 0x4477fe
mov esi, dword [esp + 0x14]
test esi, esi
jne 0x4479c2
xor eax, eax
jmp 0x447804
cmp al, 0xe0
jne case.default.0x44768a
push str.Got_DISCONNECT_n
push edi
call fcn.004511c0
mov eax, dword [esp + 0x20]
add esp, 8
mov byte [eax], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0x10], eax
xor esi, esi
mov edi, dword [ebx]
cmp byte [edi + 0xb42], 0
je 0x447859
cmp dword [edi + 0x600], 0
je 0x4478ac
mov ecx, dword [edi + 0x7c]
test ecx, ecx
jne 0x44782a
mov ecx, dword [edi + 0x78]
test ecx, ecx
je 0x447831
mov byte [ecx + 0xe6], 1
push dword [edi + 0x594]
push eax
lea eax, [esp + 0x14]
push eax
mov eax, dword [edi + 0x600]
push 1
push edi
call eax
mov eax, dword [edi + 0x7c]
add esp, 0x14
test eax, eax
je 0x447898
mov byte [eax + 0xe6], 0
mov edi, dword [esp + 0x10]
cmp edi, 3
jb case.default.0x44768a
mov al, byte [esp + 0xc]
cmp al, byte [ebx + 0x611]
jne case.default.0x44768a
mov al, byte [esp + 0xd]
cmp al, byte [ebx + 0x610]
jne case.default.0x44768a
cmp byte [esp + 0xe], 0
jne case.default.0x44768a
test esi, esi
jmp 0x44799e
mov eax, dword [edi + 0x78]
mov edi, dword [esp + 0x10]
test eax, eax
je 0x44785d
mov byte [eax + 0xe6], 0
jmp 0x44785d
push dword [edi + 0x590]
push 1
push 2
push 0x71163f
call fcn.00629d40
push dword [edi + 0x590]
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x20]
push 1
push edi
push eax
call fcn.00629d40
add esp, 0x20
jmp 0x44785d
jne 0x4478fa
push str.server_disconnected_n
push edi
call fcn.004511c0
mov esi, 0x12
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0xb42], 0
je 0x44794f
cmp dword [edi + 0x600], 0
je 0x44794f
mov eax, dword [edi + 0x7c]
test eax, eax
jne 0x44791a
mov eax, dword [edi + 0x78]
test eax, eax
je 0x447921
mov byte [eax + 0xe6], 1
push dword [edi + 0x594]
mov eax, dword [edi + 0x600]
push esi
push dword [esp + 0x18]
push 3
push edi
call eax
mov eax, dword [edi + 0x7c]
add esp, 0x14
test eax, eax
jne 0x447948
mov eax, dword [edi + 0x78]
test eax, eax
je 0x44794f
mov byte [eax + 0xe6], 0
mov eax, dword [esp + 0xc]
push esi
push dword [esp + 0x14]
sub dword [eax + 8], esi
mov eax, esi
cdq
add dword [edi + 0x98], eax
mov eax, dword [edi + 0x98]
adc dword [edi + 0x9c], edx
mov edx, 1
mov ecx, dword [edi + 0x9c]
mov dword [edi + 0xb9c], ecx
mov ecx, ebx
mov dword [edi + 0xb98], eax
call fcn.00451800
mov esi, eax
add esp, 8
test esi, esi
jne 0x4479c2
mov ecx, dword [esp + 0xc]
cmp dword [ecx + 8], eax
jne 0x4479c2
mov dword [ebx + 0x60c], 5
mov eax, esi
mov dword [ebx + 0x608], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, 8
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret