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

Disassembly:
mov eax, 0x44
call fcn.10163470
mov eax, dword [0x101f9e50]
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 0x100fab47
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 0x100fa7ba
cmp eax, edi
jb 0x100fab10
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.100ce3b0
lea eax, [edi - 1]
add esp, 0x10
add ebp, edi
xor ecx, ecx
xor edx, edx
cmp eax, 7
ja case.default.0x100fa4c5
jmp dword [eax*4 + 0x100fab58]
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.0x100fa52e
jmp dword [eax*4 + 0x100fab78]
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 0x100fa583
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
jmp 0x100fa7a5
cmp eax, 0x40
jne 0x100fa591
mov ebx, edx
mov edx, ecx
jmp 0x100fa7a5
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 0x100fa620
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.10160550
mov ah, byte [esp + 0x4d]
mov dh, byte [esp + 0x4f]
add esp, 0xc
test ebx, ebx
je 0x100fa745
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 0x100fa769
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 0x100fa490
jmp 0x100fab0c
cmp eax, edi
jb 0x100fab10
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.100ce3b0
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.0x100fa803
jmp dword [eax*4 + 0x100fab98]
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 0x100fa86c
mov ebx, dword [esp + 0x14]
jmp 0x100faa92
cmp eax, 0x40
jne 0x100fa87a
mov ebx, edx
mov edx, ecx
jmp 0x100faa92
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 0x100fa90d
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.10160550
mov ah, byte [esp + 0x4d]
mov dh, byte [esp + 0x4f]
add esp, 0xc
test ebx, ebx
je 0x100faa32
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 0x100faa56
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.0x100faab7
lea edx, [edi - 1]
jmp dword [edx*4 + 0x100fabb8]
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 0x100fa7c6
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.101603fd
add esp, 0x44
ret