Function at 0x49c801
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [ebp + 8]
and dword [esp], 0
push ebx
push esi
push edi
push 2
mov edi, ecx
mov dword [esp + 0x14], edx
pop ecx
lea esi, [eax + 2]
mov dword [esp + 0x14], esi
cmp dword [ebp + 0xc], ecx
jl 0x49ca92
movzx eax, word [edx + eax]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ecx, ax
movzx eax, cx
shr eax, 0xf
mov dword [esp + 0x18], eax
mov eax, ecx
shr eax, 8
and eax, 0xffffff0f
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], eax
movzx eax, cl
mov ebx, eax
mov dword [esp + 0x1c], eax
and ebx, 0x7f
cmp ebx, 0x7e
jne 0x49c8ae
cmp dword [ebp + 0xc], 4
mov eax, dword [ebp + 8]
jl 0x49ca92
mov ecx, dword [esp + 0x10]
movzx eax, word [ecx + eax + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ebx, ax
add esi, 2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], esi
shr eax, 5
and eax, 4
add eax, ebx
add eax, esi
cmp dword [ebp + 0xc], eax
jge 0x49c8f5
mov eax, dword [ebp + 8]
jmp 0x49ca92
cmp ebx, 0x7f
jne 0x49c897
cmp dword [ebp + 0xc], 0xa
mov eax, dword [ebp + 8]
jl 0x49ca92
mov ecx, dword [esp + 0x10]
push dword [ecx + eax + 6]
push dword [ecx + eax + 2]
call fcn.004845fe
mov ebx, eax
pop ecx
pop ecx
test edx, edx
jne 0x49c8e6
cmp ebx, 0x7fffffff
ja 0x49c8e6
add esi, 8
jmp 0x49c88b
push edi
call fcn.0049d4a0
mov eax, dword [ebp + 0xc]
pop ecx
jmp 0x49ca92
test cl, 0x80
mov ecx, dword [esp + 0x10]
push 0
pop edx
lea eax, [esi + ecx]
cmove eax, edx
mov dword [esp + 0x20], eax
test eax, eax
je 0x49c946
add esi, 4
mov dword [esp + 0x14], esi
test ebx, ebx
jle 0x49c946
lea eax, [esi + ecx]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov ecx, eax
mov eax, edx
and eax, reloc.WS2_32.dll_closesocket
jns 0x49c933
dec eax
or eax, 0xfffffffc
inc eax
mov al, byte [eax + esi]
xor byte [ecx + edx], al
inc edx
cmp edx, ebx
jl 0x49c925
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [edi + 0x34]
test edx, edx
je 0x49ca8f
mov eax, dword [esp + 0x24]
cmp al, 8
jae 0x49cad5
cmp dword [edi + 0xd4], 0
jne 0x49c97d
and dword [esp + 0xc], 0
movzx eax, al
mov dword [edi + 0xc4], eax
mov eax, dword [esp + 0x18]
add eax, 0xa
jmp 0x49c9a8
test al, al
je 0x49c98a
movzx eax, al
mov dword [edi + 0xc4], eax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x49c9c6
xor eax, eax
cmp dword [edi + 0xcc], eax
jne 0x49c9c6
cmp byte [edi + 0xd8], al
jne 0x49c9c6
mov dword [esp + 0xc], eax
push eax
push ebx
lea eax, [esp + 0x14]
push eax
lea eax, [esi + ecx]
push eax
push dword [edi + 0xe0]
push 0
push edi
call edx
add esp, 0x1c
jmp 0x49ca8f
mov eax, dword [edi + 0xcc]
mov esi, dword [edi + 0xd0]
add eax, ebx
cmp eax, esi
jl 0x49ca1d
mov ecx, dword [edi + 0xd4]
cmp esi, ecx
jne 0x49ca99
push 0xa
push dword [edi + 0xcc]
lea eax, [esp + 0x14]
mov byte [edi + 0xd8], 1
push eax
push dword [edi + 0xc8]
xor esi, esi
push dword [edi + 0xe0]
mov dword [esp + 0x20], esi
push esi
push edi
call edx
add esp, 0x1c
mov dword [edi + 0xcc], esi
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov esi, dword [edi + 0xcc]
add eax, ecx
mov edx, dword [edi + 0xd0]
mov ecx, dword [edi + 0xc8]
sub edx, esi
push ebx
push eax
add ecx, esi
call section..text
add dword [edi + 0xcc], ebx
cmp dword [esp + 0x20], 0
pop ecx
pop ecx
je 0x49ca8b
push 0xb
pop eax
xor ecx, ecx
cmp byte [edi + 0xd8], cl
cmove eax, ecx
push eax
push dword [edi + 0xcc]
lea eax, [esp + 0x14]
push eax
push dword [edi + 0xc8]
push dword [edi + 0xe0]
push ecx
push edi
call dword [edi + 0x34]
add esp, 0x1c
mov byte [edi + 0xd8], 0
and dword [edi + 0xcc], 0
mov esi, dword [esp + 0x14]
lea eax, [ebx + esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x29d
lea eax, [esi + esi]
cmp eax, ecx
push 0x7437a8
cmovg eax, ecx
push 1
push eax
push dword [edi + 0xc8]
mov dword [edi + 0xd0], eax
call fcn.005ed970
add esp, 0x14
mov dword [edi + 0xc8], eax
test eax, eax
jne 0x49ca19
jmp 0x49cb5b
movzx eax, al
sub eax, 8
je 0x49caf7
sub eax, 1
jne 0x49ca8f
push 1
push 1
push 0xa
push eax
xor edx, edx
mov ecx, edi
call fcn.0049d091
add esp, 0x10
jmp 0x49ca8f
and dword [esp + 0x24], 0
lea ecx, [edi + 0xb4]
call fcn.0044cfd4
cmp byte [edi + 0xd9], 0
jne 0x49cb1c
xor eax, eax
mov byte [edi + 0xd9], 1
inc eax
jmp 0x49cb20
mov eax, dword [esp + 0x24]
mov dword [edi + 0xb4], 0
test eax, eax
je 0x49cb4f
mov edx, dword [esp + 0x10]
xor eax, eax
push 1
push 2
pop ecx
push ecx
test ebx, ebx
lea edx, [esi + edx]
push 8
cmovg eax, ecx
mov ecx, edi
push eax
call fcn.0049d091
add esp, 0x10
push edi
call fcn.0049d4a0
pop ecx
jmp 0x49ca8f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov esi, 0xfe
mov edi, 0x29d
push esi
push edi
mov edx, 0x7437c8
xor ecx, ecx
call fcn.0048cac3
add esp, 0xc
push edi
push 0x7437e8
push 0x743808
call fcn.00401109
add esp, 0xc
push esi
call fcn.005c8390
int3