Function at 0x4c4150
Capabilities:
Terminate process

Disassembly:
sub esp, 0x234
mov eax, dword [0x6009e4]
xor eax, esp
mov dword [esp + 0x22c], eax
push ebx
push ebp
mov ebp, dword [esp + 0x240]
mov ebx, ecx
push esi
push edi
mov edi, edx
movzx eax, word [edi + ebp]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
lea esi, [ebp + 8]
mov ecx, eax
mov dword [esp + 0x10], eax
add esi, edi
and ecx, 0x110
mov dword [esp + 0x1c], esi
cmp ecx, 0x10
je 0x4c41bd
cmp ecx, 0x110
je 0x4c41bd
push ecx
push ebp
mov edx, edi
mov ecx, ebx
call fcn.004c3f90
add esp, 8
test eax, eax
je case.0x4c4307.261
mov eax, dword [esp + 0x10]
cmp eax, 0x103
ja 0x4c42f2
je 0x4c426e
cmp eax, 0x17
jne case.0x4c4307.261
lea eax, [esp + 0x10]
mov edx, ebp
push eax
push ecx
push 0x12
push ecx
mov ecx, edi
call fcn.004c3d60
add esp, 0x10
mov esi, eax
lea eax, [esp + 0x18]
mov edx, ebp
push eax
push ecx
push 0x13
push ecx
mov ecx, edi
call fcn.004c3d60
add esp, 0x10
mov dword [esp + 0x14], eax
test esi, esi
jle case.0x4c4307.261
test eax, eax
jle case.0x4c4307.261
cmp dword [ebx + 0x20], 0
je case.0x4c4307.261
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x88]
lea esi, [ebp + 8]
mov dword [esp + 0xa4], 4
push eax
add esi, edi
mov dword [esp + 0xac], 0x10000
push esi
call fcn.004c4cc0
push dword [esp + 0x1c]
lea eax, [esp + 0x94]
push 0
push dword [esp + 0x28]
push eax
mov eax, dword [ebx + 0x20]
push ebx
call eax
add esp, 0x1c
jmp case.0x4c4307.261
lea eax, [esp + 0x18]
mov edx, ebp
push eax
push ecx
push 0xd
push ecx
mov ecx, edi
call fcn.004c3d60
add esp, 0x10
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
mov edx, ebp
push eax
push ecx
push 0x16
push ecx
mov ecx, edi
call fcn.004c3d60
mov edi, eax
add esp, 0x10
test edi, edi
jle 0x4c42b7
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x88]
push eax
push esi
call fcn.004c4cc0
add esp, 8
cmp dword [esp + 0x14], 0
jle case.0x4c4307.261
test edi, edi
jle case.0x4c4307.261
mov eax, dword [esp + 0x18]
push dword [eax]
call dword [sym.imp.WS2_32.dll_ntohl]
mov ecx, dword [ebx + 0x1c]
test ecx, ecx
je case.0x4c4307.261
lea edx, [esp + 0x88]
push edx
push eax
push ebx
call ecx
jmp 0x4c48b0
add eax, 0xfffffefc
cmp eax, 0x15
ja case.0x4c4307.261
movzx eax, byte [eax + 0x4c4970]
jmp dword [eax*4 + 0x4c4950]
mov ecx, dword [ebx + 0x40]
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x14]
mov edx, esi
push eax
push 0xc
call fcn.004b01a0
add esp, 0xc
lea eax, [esp + 0x14]
mov edx, ebp
push eax
push ecx
push 0xd
push ecx
mov ecx, edi
call fcn.004c3d60
mov esi, dword [esp + 0x20]
add esp, 0x10
test esi, esi
je case.0x4c4307.261
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4c4366
push eax
mov eax, dword [esp + 0x18]
push dword [eax]
call dword [sym.imp.WS2_32.dll_ntohl]
push eax
push ebx
call esi
jmp 0x4c48b0
cmp eax, 2
jne case.0x4c4307.261
cmp dword [esi], 0
je 0x4c438c
mov eax, dword [esp + 0x14]
push dword [esi + 4]
push dword [eax]
call dword [sym.imp.WS2_32.dll_ntohl]
push eax
mov eax, dword [esi]
push ebx
call eax
add esp, 0xc
push esi
call fcn.0058bf82
add esp, 4
jmp case.0x4c4307.261
lea eax, [esp + 0x1c]
mov edx, ebp
push eax
push ecx
push 9
push ecx
mov ecx, edi
call fcn.004c3d60
add esp, 0x10
mov dword [esp + 0x14], eax
cmp eax, 4
jge 0x4c43c2
mov dword [esp + 0x10], 0
jmp 0x4c43eb
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x10], 0x64
movsx eax, byte [edx + 2]
and eax, 7
imul ecx, eax, 0x64
movsx eax, byte [edx + 3]
cdq
idiv dword [esp + 0x10]
mov eax, dword [esp + 0x14]
add ecx, edx
mov dword [esp + 0x10], ecx
cmp eax, 4
jg 0x4c43f4
xor eax, eax
jmp 0x4c43fb
mov eax, dword [esp + 0x1c]
add eax, 4
mov ecx, dword [ebx + 0x40]
mov edx, esi
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x1c]
push eax
push 0xc
call fcn.004b01a0
mov eax, dword [esp + 0x1c]
add esp, 0xc
sub eax, 0x191
je case.0x4c4307.261
sub eax, 0x25
je 0x4c4448
cmp dword [esp + 0x14], 2
jne case.0x4c4307.261
push dword [esp + 0x18]
call fcn.0058bf82
add esp, 4
jmp case.0x4c4307.261
push 0x15
push ecx
mov edx, ebp
mov ecx, edi
call fcn.004c3e40
add esp, 8
cmp eax, 1
jne 0x4c44be
lea eax, [esp + 0x1c]
mov edx, ebp
push eax
push ecx
push 0x15
push ecx
mov ecx, edi
call fcn.004c3d60
push dword [ebx + 0x48]
mov esi, eax
call fcn.0058bf82
mov ecx, dword [esp + 0x30]
add esp, 0x14
mov edx, esi
mov dword [ebx + 0x4c], esi
call fcn.004b3f30
cmp dword [esp + 0x14], 0
mov esi, dword [esp + 0x18]
mov dword [ebx + 0x48], eax
jne 0x4c44a8
xor ecx, ecx
mov edx, esi
push ecx
mov ecx, ebx
call fcn.004c50d0
add esp, 4
jmp 0x4c44c2
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
mov ecx, ebx
call fcn.004c50d0
add esp, 4
jmp 0x4c44c2
mov esi, dword [esp + 0x18]
cmp dword [esp + 0x14], 2
jne case.0x4c4307.261
push esi
call fcn.0058bf82
add esp, 4
jmp case.0x4c4307.261
mov ecx, dword [ebx + 0x40]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
mov edx, esi
push eax
push 0xc
call fcn.004b01a0
mov edi, dword [esp + 0x1c]
add esp, 0xc
test edi, edi
je 0x4c4620
mov eax, dword [edi]
test eax, eax
je 0x4c4617
push dword [edi + 4]
push 0
push dword [esp + 0x1c]
push ebx
call eax
add esp, 0x10
jmp 0x4c4617
mov ecx, dword [ebx + 0x40]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
mov edx, esi
push eax
push 0xc
call fcn.004b01a0
mov edi, dword [esp + 0x1c]
add esp, 0xc
test edi, edi
je case.0x4c4307.261
mov eax, dword [edi]
test eax, eax
je 0x4c4617
push dword [edi + 4]
push 1
push dword [esp + 0x1c]
push ebx
call eax
add esp, 0x10
jmp 0x4c4617
mov ecx, dword [ebx + 0x40]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
mov edx, esi
push eax
push 0xc
call fcn.004b01a0
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x4c45ab
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c4620
push 0
push 0
push ebx
call eax
mov ecx, dword [ebx + 0x40]
add esp, 0xc
mov edx, esi
push 0xc
call fcn.004b01d0
add esp, 4
jmp case.0x4c4307.261
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x4c4617
push dword [edi + 4]
push 0
jmp 0x4c4611
mov ecx, dword [ebx + 0x40]
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x14]
mov edx, esi
push eax
push 0xc
call fcn.004b01a0
add esp, 0xc
cmp dword [esp + 0x14], 0
jne 0x4c4602
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4c4620
push 0
push 1
push ebx
call eax
mov ecx, dword [ebx + 0x40]
add esp, 0xc
mov edx, esi
push 0xc
call fcn.004b01d0
add esp, 4
jmp case.0x4c4307.261
mov edi, dword [esp + 0x10]
mov eax, dword [edi]
test eax, eax
je 0x4c4617
push dword [edi + 4]
push 1
push ebx
call eax
add esp, 0xc
push edi
call fcn.0058bf82
add esp, 4
mov ecx, dword [ebx + 0x40]
mov edx, esi
push 0xc
call fcn.004b01d0
add esp, 4
jmp case.0x4c4307.261
push 0x14
push ecx
mov edx, ebp
mov ecx, edi
call fcn.004c3e40
add esp, 8
cmp eax, 1
jne case.0x4c4307.261
push 0x15
push ecx
mov edx, ebp
mov ecx, edi
call fcn.004c3e40
add esp, 8
cmp eax, 1
jne case.0x4c4307.261
mov ecx, dword [ebx + 0x40]
mov edx, esi
push 0
push 0xc
call fcn.004affa0
add esp, 8
test eax, eax
je 0x4c48a2
lea eax, [esp + 0x18]
mov edx, ebp
push eax
push ecx
push 0x15
push ecx
mov ecx, edi
call fcn.004c3d60
add esp, 0x10
mov esi, eax
lea eax, [esp + 0x10]
mov dword [esp + 0x24], esi
mov edx, ebp
push eax
push ecx
push 0x14
push ecx
mov ecx, edi
call fcn.004c3d60
mov ecx, dword [ebx + 0x48]
add esp, 0x10
mov ebp, eax
test ecx, ecx
je 0x4c46bf
push ecx
call fcn.0058bf82
add esp, 4
lea edi, [esi + 1]
push edi
call fcn.0058d200
add esp, 4
mov dword [ebx + 0x48], eax
test eax, eax
je 0x4c48cc
push esi
push dword [esp + 0x1c]
mov edx, edi
mov ecx, eax
call fcn.00401000
mov eax, dword [ebx + 0x48]
add esp, 8
mov byte [esi + eax], 0
mov eax, dword [ebx + 0x50]
mov dword [ebx + 0x4c], esi
test eax, eax
je 0x4c4701
push eax
call fcn.0058bf82
add esp, 4
lea esi, [ebp + 1]
push esi
call fcn.0058d200
add esp, 4
mov dword [ebx + 0x50], eax
test eax, eax
je 0x4c490d
mov edi, dword [esp + 0x10]
mov edx, esi
push ebp
push edi
mov ecx, eax
call fcn.00401000
mov eax, dword [ebx + 0x50]
mov byte [eax + ebp], 0
lea eax, [esp + 0x1c0]
push dword [ebx + 0x38]
mov dword [ebx + 0x54], ebp
push dword [ebx + 0x50]
push dword [ebx + 0x30]
push str._s:_s:_s
push 0x80
push eax
call fcn.00401140
mov esi, eax
lea eax, [esp + 0x48]
push eax
call fcn.004d5fe0
add esp, 0x24
lea eax, [esp + 0x1b8]
push esi
push eax
lea eax, [esp + 0x30]
push eax
call fcn.004d6040
add esp, 0xc
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.004d5ec0
lea eax, [esp + 0xb4]
push 0xc
push eax
call fcn.004e2870
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x30]
mov ecx, dword [ebx + 0x40]
push eax
lea eax, [esp + 0x28]
push eax
push 0xc
call fcn.004b01a0
mov edx, dword [esp + 0x38]
add esp, 0x1c
mov ecx, dword [ebx + 0x40]
push 0xc
call fcn.004b01d0
mov al, byte [esp + 0x24]
lea ecx, [esp + 0xbc]
add esp, 4
mov dword [esp + 0x10], 0
mov byte [esp + 0x10], al
mov edx, 3
lea eax, [esp + 0xac]
push eax
call fcn.004c4bd0
add esp, 4
lea ecx, [esp + 0xb8]
mov esi, eax
lea eax, [esp + 0x10]
mov edx, esi
push 4
push eax
push 0x19
call fcn.004c4c40
add esp, 0xc
lea ecx, [esp + 0xb8]
add esi, eax
mov edx, esi
push dword [esp + 0x24]
push dword [esp + 0x1c]
push 0x15
call fcn.004c4c40
add esp, 0xc
add esi, eax
push ebp
push edi
push 0x14
mov edx, esi
lea ecx, [esp + 0xc4]
call fcn.004c4c40
add esp, 0xc
lea ecx, [esp + 0xb8]
add esi, eax
mov edx, esi
push dword [ebx + 0x34]
push dword [ebx + 0x30]
push 6
call fcn.004c4c40
add esp, 0xc
lea ecx, [esp + 0xb8]
add esi, eax
lea eax, [esp + 0x88]
mov edx, esi
push 0x10
push eax
call fcn.004bbbb0
add esi, eax
lea ecx, [esp + 0xc0]
mov edx, esi
call fcn.004bbc30
push 2
add esi, eax
lea eax, [esp + 0xc4]
push esi
push eax
push 1
push 0
push dword [ebx + 0x2c]
call fcn.004aa1b0
add esp, 0x20
jmp case.0x4c4307.261
mov eax, dword [ebx + 0x1c]
test eax, eax
je case.0x4c4307.261
push 0
push 0
push ebx
call eax
add esp, 0xc
mov ecx, dword [esp + 0x23c]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00584a28
add esp, 0x234
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x1af6
mov edx, 0x61f89c
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x1af6
push 0x61f8b8
push 0x61f8d4
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfe
push 0x1afc
mov edx, 0x61f8f8
xor ecx, ecx
call fcn.004b47e0
add esp, 0xc
push 0x1afc
push 0x61f914
push 0x61f930
call fcn.004010e0
add esp, 0xc
push 0xfe
call fcn.00587d2d
nop
push cs
inc ebx
dec esp
add byte [ebp + eax*2 + 0x451e004c], bh
dec esp
add byte [esi + eax*2], dh
dec esp
add byte [edx + 0x61004c43], bl
inc ebp
dec esp
add bl, bl
inc esp
dec esp
add byte [ebx + 0x4c48], dh
pop es
pop es
pop es
add dword [edx], eax
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
pop es
add eax, dword [edi + eax]
pop es
pop es
add eax, -858993658
int3