Function at 0x4812f0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x44
call fcn.004c72a0
mov eax, dword [0x5279f0]
xor eax, esp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
push esi
mov esi, dword [esp + 0x50]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x64]
push edi
lea edi, [ecx + 7]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
shr edi, 3
mov dword [esp + 0x34], eax
cmp ecx, 0x40
jg 0x481a67
push ebx
movzx ebx, byte [eax]
push ebp
lea ebp, [eax + 1]
mov edx, ebp
mov dword [esp + 0x30], ebp
movzx eax, byte [edx]
movzx ecx, byte [edx + 3]
shl eax, 8
or ebx, eax
movzx eax, byte [edx + 1]
shl eax, 0x10
or ebx, eax
movzx eax, byte [edx + 2]
shl eax, 0x18
or ebx, eax
movzx eax, byte [edx + 4]
shl eax, 8
or ecx, eax
movzx eax, byte [edx + 5]
mov dword [esp + 0x14], ecx
movzx ecx, byte [edx + 6]
mov edx, dword [esp + 0x14]
shl ecx, 8
or ecx, eax
mov eax, dword [esp + 0x64]
shl ecx, 0x10
or edx, ecx
cmp dword [esp + 0x78], 0
mov dword [esp + 0x14], edx
je 0x4816da
cmp eax, edi
jb 0x481a30
mov ebp, dword [esp + 0x58]
lea esp, [esp]
push dword [esp + 0x2c]
sub eax, edi
push dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
push dword [esp + 0x3c]
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edx
call fcn.0047f3a0
lea eax, [edi - 1]
add esp, 0x10
add ebp, edi
xor ecx, ecx
xor edx, edx
cmp eax, 7
ja case.default.0x4813e5
jmp dword [eax*4 + 0x481a78]
movzx ecx, byte [ebp - 1]
dec ebp
shl ecx, 0x18
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 0x10
or ecx, eax
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 8
or ecx, eax
movzx eax, byte [ebp - 1]
dec ebp
or ecx, eax
movzx edx, byte [ebp - 1]
dec ebp
shl edx, 0x18
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 0x10
or edx, eax
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 8
or edx, eax
movzx eax, byte [ebp - 1]
dec ebp
or edx, eax
lea eax, [edi - 1]
xor edx, dword [esp + 0x20]
xor ecx, dword [esp + 0x24]
add ebp, edi
add esi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
cmp eax, 7
ja case.default.0x48144e
jmp dword [eax*4 + 0x481a98]
dec esi
mov eax, ecx
shr eax, 0x18
mov byte [esi], al
dec esi
mov eax, ecx
shr eax, 0x10
mov byte [esi], al
dec esi
mov eax, ecx
shr eax, 8
mov byte [esi], al
dec esi
mov byte [esi], cl
dec esi
mov eax, edx
shr eax, 0x18
mov byte [esi], al
dec esi
mov eax, edx
shr eax, 0x10
mov byte [esi], al
dec esi
mov eax, edx
shr eax, 8
mov byte [esi], al
dec esi
mov byte [esi], dl
mov eax, dword [esp + 0x60]
add esi, edi
cmp eax, 0x20
jne 0x4814a3
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
jmp 0x4816c5
cmp eax, 0x40
jne 0x4814b1
mov ebx, edx
mov edx, ecx
jmp 0x4816c5
mov ecx, dword [esp + 0x14]
mov eax, ebx
shr eax, 8
mov byte [esp + 0x41], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x42], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x45], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x46], al
mov eax, edx
shr eax, 8
mov byte [esp + 0x49], al
mov byte [esp + 0x44], cl
shr ecx, 0x18
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x47], cl
mov ecx, dword [esp + 0x1c]
mov byte [esp + 0x4a], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x4d], al
mov eax, ecx
mov byte [esp + 0x4c], cl
shr ecx, 0x18
mov byte [esp + 0x40], bl
shr ebx, 0x18
mov byte [esp + 0x4f], cl
mov ecx, dword [esp + 0x60]
mov byte [esp + 0x43], bl
mov byte [esp + 0x48], dl
shr edx, 0x18
shr eax, 0x10
mov ebx, ecx
mov byte [esp + 0x4b], dl
mov byte [esp + 0x4e], al
and ebx, reloc.WS2_32.dll_getsockopt
jns 0x481540
dec ebx
or ebx, 0xfffffff8
inc ebx
mov eax, 0
setne al
add eax, 8
push eax
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [esp + eax + 0x44]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004c22c0
mov ah, byte [esp + 0x4d]
mov dh, byte [esp + 0x4f]
add esp, 0xc
test ebx, ebx
je 0x481665
mov ch, byte [esp + 0x40]
mov cl, bl
shl ch, cl
mov dl, 8
sub dl, bl
mov al, ah
mov cl, dl
shr al, cl
mov cl, bl
shl ah, cl
mov cl, dl
or ch, al
mov byte [esp + 0x1b], ch
mov byte [esp + 0x40], ch
mov ch, byte [esp + 0x42]
mov al, ch
shr al, cl
mov cl, bl
shl ch, cl
mov cl, dl
or ah, al
mov al, dh
shr al, cl
mov cl, bl
shl dh, cl
mov cl, dl
or ch, al
mov al, byte [esp + 0x44]
mov byte [esp + 0x11], al
shr al, cl
mov cl, bl
mov byte [esp + 0x41], ah
mov byte [esp + 0x42], ch
or dh, al
mov al, byte [esp + 0x11]
shl al, cl
mov cl, dl
mov byte [esp + 0x43], dh
mov byte [esp + 0x11], al
mov al, byte [esp + 0x45]
mov byte [esp + 0x12], al
shr al, cl
mov cl, byte [esp + 0x11]
or cl, al
mov al, byte [esp + 0x12]
mov byte [esp + 0x11], cl
mov byte [esp + 0x44], cl
mov cl, bl
shl al, cl
mov cl, dl
mov byte [esp + 0x12], al
mov al, byte [esp + 0x46]
mov byte [esp + 0x10], al
shr al, cl
mov cl, byte [esp + 0x12]
or cl, al
mov al, byte [esp + 0x10]
mov byte [esp + 0x12], cl
mov byte [esp + 0x45], cl
mov cl, bl
shl al, cl
mov cl, byte [esp + 0x47]
mov byte [esp + 0x13], cl
mov byte [esp + 0x10], al
mov al, cl
mov cl, dl
shr al, cl
mov cl, byte [esp + 0x10]
or cl, al
mov al, byte [esp + 0x48]
mov byte [esp + 0x10], cl
mov byte [esp + 0x46], cl
mov cl, bl
mov bl, byte [esp + 0x13]
shl bl, cl
mov cl, dl
shr al, cl
or bl, al
mov byte [esp + 0x13], bl
mov byte [esp + 0x47], bl
mov cl, bl
mov al, byte [esp + 0x1b]
jmp 0x481689
mov al, byte [esp + 0x46]
mov cl, byte [esp + 0x47]
mov ch, byte [esp + 0x42]
mov byte [esp + 0x10], al
mov al, byte [esp + 0x45]
mov byte [esp + 0x12], al
mov al, byte [esp + 0x44]
mov byte [esp + 0x11], al
mov al, byte [esp + 0x40]
movzx ebx, al
movzx eax, ah
shl eax, 8
or ebx, eax
movzx eax, ch
shl eax, 0x10
or ebx, eax
movzx eax, dh
movzx edx, byte [esp + 0x11]
shl eax, 0x18
or ebx, eax
movzx eax, byte [esp + 0x12]
shl eax, 8
movzx ecx, cl
or edx, eax
movzx eax, byte [esp + 0x10]
shl ecx, 8
or ecx, eax
shl ecx, 0x10
or edx, ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x14], edx
cmp eax, edi
jae 0x4813b0
jmp 0x481a2c
cmp eax, edi
jb 0x481a30
mov ebp, dword [esp + 0x58]
push dword [esp + 0x2c]
sub eax, edi
push dword [esp + 0x3c]
mov dword [esp + 0x6c], eax
push dword [esp + 0x3c]
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], edx
call fcn.0047f3a0
xor ecx, ecx
xor edx, edx
lea eax, [edi - 1]
add esp, 0x10
add ebp, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], edx
cmp eax, 7
ja case.default.0x481723
jmp dword [eax*4 + 0x481ab8]
movzx ecx, byte [ebp - 1]
dec ebp
shl ecx, 0x18
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 0x10
or ecx, eax
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 8
or ecx, eax
movzx eax, byte [ebp - 1]
dec ebp
or ecx, eax
mov dword [esp + 0x1c], ecx
movzx edx, byte [ebp - 1]
dec ebp
shl edx, 0x18
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 0x10
or edx, eax
movzx eax, byte [ebp - 1]
dec ebp
shl eax, 8
or edx, eax
movzx eax, byte [ebp - 1]
dec ebp
or edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x60]
add ebp, edi
cmp eax, 0x20
jne 0x48178c
mov ebx, dword [esp + 0x14]
jmp 0x4819b2
cmp eax, 0x40
jne 0x48179a
mov ebx, edx
mov edx, ecx
jmp 0x4819b2
mov ecx, dword [esp + 0x14]
mov eax, ebx
shr eax, 8
mov byte [esp + 0x41], al
mov eax, ebx
shr eax, 0x10
mov byte [esp + 0x42], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x45], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x46], al
mov eax, edx
shr eax, 8
mov byte [esp + 0x49], al
mov eax, edx
shr eax, 0x10
mov byte [esp + 0x4a], al
mov byte [esp + 0x44], cl
shr ecx, 0x18
mov eax, edx
shr eax, 0x18
mov byte [esp + 0x4b], al
mov byte [esp + 0x47], cl
mov ecx, dword [esp + 0x1c]
mov eax, ecx
shr eax, 8
mov byte [esp + 0x4d], al
mov eax, ecx
shr eax, 0x10
mov byte [esp + 0x40], bl
shr ebx, 0x18
mov byte [esp + 0x4e], al
mov eax, ecx
mov byte [esp + 0x4c], cl
mov ecx, dword [esp + 0x60]
mov byte [esp + 0x43], bl
shr eax, 0x18
mov ebx, ecx
mov byte [esp + 0x48], dl
mov byte [esp + 0x4f], al
and ebx, reloc.WS2_32.dll_getsockopt
jns 0x48182d
dec ebx
or ebx, 0xfffffff8
inc ebx
mov eax, 0
setne al
add eax, 8
push eax
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
lea eax, [esp + eax + 0x44]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004c22c0
mov ah, byte [esp + 0x4d]
mov dh, byte [esp + 0x4f]
add esp, 0xc
test ebx, ebx
je 0x481952
mov ch, byte [esp + 0x40]
mov cl, bl
shl ch, cl
mov dl, 8
sub dl, bl
mov al, ah
mov cl, dl
shr al, cl
mov cl, bl
shl ah, cl
mov cl, dl
or ch, al
mov byte [esp + 0x1b], ch
mov byte [esp + 0x40], ch
mov ch, byte [esp + 0x42]
mov al, ch
shr al, cl
mov cl, bl
shl ch, cl
mov cl, dl
or ah, al
mov al, dh
shr al, cl
mov cl, bl
shl dh, cl
mov cl, dl
or ch, al
mov al, byte [esp + 0x44]
mov byte [esp + 0x10], al
shr al, cl
mov cl, bl
mov byte [esp + 0x41], ah
mov byte [esp + 0x42], ch
or dh, al
mov al, byte [esp + 0x10]
shl al, cl
mov cl, dl
mov byte [esp + 0x43], dh
mov byte [esp + 0x10], al
mov al, byte [esp + 0x45]
mov byte [esp + 0x12], al
shr al, cl
mov cl, byte [esp + 0x10]
or cl, al
mov al, byte [esp + 0x12]
mov byte [esp + 0x10], cl
mov byte [esp + 0x44], cl
mov cl, bl
shl al, cl
mov cl, dl
mov byte [esp + 0x12], al
mov al, byte [esp + 0x46]
mov byte [esp + 0x11], al
shr al, cl
mov cl, byte [esp + 0x12]
or cl, al
mov al, byte [esp + 0x11]
mov byte [esp + 0x12], cl
mov byte [esp + 0x45], cl
mov cl, bl
shl al, cl
mov cl, byte [esp + 0x47]
mov byte [esp + 0x13], cl
mov byte [esp + 0x11], al
mov al, cl
mov cl, dl
shr al, cl
mov cl, byte [esp + 0x11]
or cl, al
mov al, byte [esp + 0x48]
mov byte [esp + 0x11], cl
mov byte [esp + 0x46], cl
mov cl, bl
mov bl, byte [esp + 0x13]
shl bl, cl
mov cl, dl
shr al, cl
or bl, al
mov byte [esp + 0x13], bl
mov byte [esp + 0x47], bl
mov cl, bl
mov al, byte [esp + 0x1b]
jmp 0x481976
mov al, byte [esp + 0x46]
mov cl, byte [esp + 0x47]
mov ch, byte [esp + 0x42]
mov byte [esp + 0x11], al
mov al, byte [esp + 0x45]
mov byte [esp + 0x12], al
mov al, byte [esp + 0x44]
mov byte [esp + 0x10], al
mov al, byte [esp + 0x40]
movzx ebx, al
movzx eax, ah
shl eax, 8
or ebx, eax
movzx eax, ch
shl eax, 0x10
or ebx, eax
movzx eax, dh
movzx edx, byte [esp + 0x10]
shl eax, 0x18
or ebx, eax
movzx eax, byte [esp + 0x12]
shl eax, 8
movzx ecx, cl
or edx, eax
movzx eax, byte [esp + 0x11]
shl ecx, 8
or ecx, eax
shl ecx, 0x10
or edx, ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
xor eax, dword [esp + 0x24]
xor ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
lea edx, [edi - 1]
add esi, edi
mov dword [esp + 0x1c], eax
cmp edx, 7
ja case.default.0x4819d7
lea edx, [edi - 1]
jmp dword [edx*4 + 0x481ad8]
dec esi
shr eax, 0x18
mov byte [esi], al
mov eax, dword [esp + 0x1c]
dec esi
shr eax, 0x10
mov byte [esi], al
mov eax, dword [esp + 0x1c]
dec esi
shr eax, 8
mov byte [esi], al
mov eax, dword [esp + 0x1c]
dec esi
mov byte [esi], al
dec esi
mov eax, ecx
shr eax, 0x18
mov byte [esi], al
dec esi
mov eax, ecx
shr eax, 0x10
mov byte [esi], al
dec esi
mov eax, ecx
shr eax, 8
mov byte [esi], al
dec esi
mov byte [esi], cl
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x14]
add esi, edi
cmp eax, edi
jae 0x4816e6
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x3c]
mov byte [eax], bl
mov eax, ebx
shr eax, 8
mov byte [ebp], al
mov eax, ebx
shr eax, 0x10
mov byte [ebp + 1], al
shr ebx, 0x18
mov byte [ebp + 2], bl
mov byte [ebp + 3], dl
mov eax, edx
shr eax, 8
mov byte [ebp + 4], al
mov eax, edx
shr eax, 0x10
mov byte [ebp + 5], al
shr edx, 0x18
mov byte [ebp + 6], dl
pop ebp
pop ebx
mov ecx, dword [esp + 0x48]
pop edi
pop esi
xor ecx, esp
call fcn.004c22ab
add esp, 0x44
ret