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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x348
mov esi, esp
mov dword [esi + 0x330], ebp
mov dword [esi + 0x334], esp
mov dword [esi + 0x340], 0xffffffff
mov dword [esi + 0x33c], 0x421a40
mov ebx, dword [ebp + 0x10]
lea eax, [esi + 0x338]
mov ecx, dword fs:[0]
mov dword [esi + 0x338], ecx
mov dword fs:[0], eax
cmp word [ebx + 0x1c], 0
je 0x41f726
mov eax, dword [ebx + 0x18]
movzx edx, word [ebx + 0x1e]
mov edi, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x14], eax
mov ax, 1
test edi, edi
mov word [esi + 0x18], dx
mov word [esi + 0x20], ax
je 0x41f7d9
cmp edi, dword [esi + 0x14]
jae 0x41f764
cmp byte [ecx + edi], 0xbf
jg 0x41f766
mov dword [esi + 0x340], 0
push 0x503968
push edi
push 0
push dword [esi + 0x14]
push ecx
call fcn.005004f0
add esp, 0x14
jmp 0x41ff94
mov eax, dword [ebx + 0x20]
mov edx, dword [ebx + 0x18]
mov ecx, dword [ebx + 0x14]
test eax, eax
mov dword [esi + 0x14], edx
je 0x41f7a6
cmp eax, dword [esi + 0x14]
jae 0x41f7a4
cmp byte [ecx + eax], 0xbf
jg 0x41f7a6
mov dword [esi + 0x340], 0
push 0x503968
push eax
push 0
push dword [esi + 0x14]
push ecx
call fcn.005004f0
add esp, 0x14
jmp 0x41ff94
jne 0x41f703
test edi, edi
mov dword [esi + 0xc], ecx
js 0x41ff7e
movzx eax, byte [0x5781b1]
push 1
push edi
call fcn.00402ce0
add esp, 8
mov ecx, dword [esi + 0xc]
test eax, eax
jne 0x41f7de
mov dword [esi + 0x340], 0
push edi
push 1
call fcn.00500210
add esp, 8
jmp 0x41ff94
jne 0x41f741
mov dword [esi + 0x340], 0
mov dword [esi + 8], eax
push eax
mov dword [esi + 0xc], ecx
push ecx
call fcn.004b05a0
add esp, 8
mov edi, dword [esi + 8]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [esi + 0xc]
test edi, edi
mov word [esi + 0x18], dx
mov word [esi + 0x20], ax
jne 0x41f6f8
mov eax, 1
mov dword [esi + 8], edi
push edi
push ecx
mov dword [esi + 0xc], eax
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x340], 1
push ebx
call fcn.004addf0
add esp, 4
mov edi, edx
test eax, eax
mov ebx, eax
cmove edi, eax
test edi, edi
je 0x41f83b
js 0x41ff8f
movzx eax, byte [0x5781b1]
push 1
push edi
call fcn.00402ce0
add esp, 8
test eax, eax
jne 0x41f840
push edi
push 1
call fcn.00500210
add esp, 8
jmp 0x41ff94
mov eax, 1
test ebx, ebx
mov ecx, 0x503448
cmovne ecx, ebx
push edi
push ecx
push eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [esi + 0x340], 2
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x50], eax
movzx eax, word [esi + 0x20]
mov dword [esi + 0x54], edi
mov dword [esi + 0x58], ebx
mov dword [esi + 0x5c], edi
lea ecx, [esi + 0x48]
mov dword [esi + 0x34], ecx
mov word [esi + 0x8c], ax
movzx eax, word [esi + 0x18]
mov word [esi + 0x8e], ax
mov eax, dword [ebp + 0x14]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq xmm2, qword [eax + 0x10]
movsd xmm3, qword [eax + 0x18]
movsd xmm4, qword [eax + 0x20]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x88], eax
movq qword [esi + 0x60], xmm0
movq qword [esi + 0x68], xmm1
movq qword [esi + 0x70], xmm2
movsd qword [esi + 0x78], xmm3
movsd qword [esi + 0x80], xmm4
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov eax, dword [0x5780ac]
mov eax, dword [eax]
test eax, 0x7fffffff
je 0x41fa7a
call fcn.004ffcf0
xor al, 1
mov dword [esi + 0x1c], eax
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 4]
test al, al
jne 0x41fa90
lea ecx, [esi + 0x26c]
lea edx, [esi + 0x48]
mov dword [esi + 0x340], 8
call fcn.00421710
mov eax, dword [ebp + 0xc]
lea edx, [esi + 0x26c]
lea ecx, [esi + 0x138]
add eax, 0x18
push edx
push eax
push ecx
call fcn.00435ae0
add esp, 0xc
cmp dword [esi + 0x138], 0x80000000
lea edi, [esi + 0x1c4]
jne 0x41f96e
lea eax, [esi + 0x13c]
push 0x50
push eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x1c0], connect
jmp 0x41f998
lea eax, [esi + 0x1c0]
push 0x58
lea ecx, [esi + 0x138]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edx, dword [esi + 0x1c0]
cmp edx, 0x80000000
jne 0x41fb43
lea eax, [esi + 0x21c]
push 0x50
push edi
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esi + 0x264]
mov eax, dword [ebx - 4]
test eax, eax
je 0x41ff5a
dec eax
xor edi, edi
mov dword [ebx - 4], eax
add eax, dword [ebx - 8]
mov edx, dword [ebx - 0x10]
mov ecx, dword [ebx - 0xc]
cmp eax, edx
cmovae edi, edx
sub eax, edi
mov edx, eax
shl edx, 7
lea eax, [edx + eax*8]
mov edx, dword [ecx + eax]
mov edi, dword [ecx + eax + 4]
lea eax, [ecx + eax + 8]
mov dword [esi + 8], edx
push 0x80
push eax
lea eax, [esi + 0x26c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp edi, reloc.WS2_32.dll_accept
je 0x41ff5a
mov eax, dword [esi + 8]
mov dword [esi + 0x138], eax
mov dword [esi + 0x13c], edi
lea eax, [esi + 0x140]
push 0x80
lea ecx, [esi + 0x26c]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebx - 4]
mov cl, 1
mov dword [esi + 0x18], ecx
test eax, eax
mov dword [esi + 0x30], eax
je 0x41fad1
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x41fc36
mov edx, dword [eax + 8]
mov eax, dword [eax + 0x10]
xor ecx, ecx
cmp eax, edx
mov ebx, edx
cmovb ebx, ecx
mov ecx, edi
sub eax, ebx
mov ebx, edx
sub ebx, eax
sub ecx, ebx
jbe 0x41fb62
mov dword [esi + 8], ecx
jmp 0x41fc41
mov dword [esi + 0x1c], 0
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 4]
test al, al
je 0x41f909
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x340], 9
mov dword [esi + 0x138], eax
mov eax, dword [esi + 0x1c]
mov byte [esi + 0x13c], al
lea eax, [esi + 0x138]
push 0x503af0
push 0x503484
push eax
push 0x2b
push 0x503458
call fcn.00500340
add esp, 0x14
jmp 0x41ff94
push 0x50
lea eax, [esi + 0x1c4]
push eax
lea eax, [esi + 0xe8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esi + 0x134]
mov eax, dword [esi + 0x130]
pcmpeqd xmm1, xmm1
mov edx, dword [edi]
mov dword [esi + 8], edi
mov dword [esi + 0x18], eax
mov ecx, edx
sub ecx, eax
sar ecx, 3
imul ecx, ecx, 0xba2e8ba3
lea ebx, [ecx - 0x10]
movdqu xmm2, xmmword [edx + ecx]
mov dword [esi + 0xc], ecx
and ebx, dword [edi + 4]
pcmpeqb xmm2, xmm1
movdqu xmm0, xmmword [edx + ebx]
pmovmskb ecx, xmm2
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb edi, xmm0
test edi, edi
je 0x41fb6b
bsr di, di
xor edi, 0xf
jmp 0x41fb6f
mov eax, dword [ebp + 8]
mov dword [eax + 4], reloc.WS2_32.dll_accept
cmp byte [esi + 0x1c], 0
mov ecx, dword [ebp + 0xc]
mov dword [esi + 8], edx
jne 0x41fef7
jmp 0x41fec9
add edi, eax
mov edx, edi
jmp 0x41fc3a
mov di, 0x10
or ecx, 0x10000
tzcnt ecx, ecx
add edi, ecx
mov cl, 0x80
cmp di, 0xf
mov edi, dword [esi + 8]
ja 0x41fb8b
inc dword [edi + 8]
mov cl, 0xff
mov eax, dword [esi + 0xc]
mov byte [edx + eax], cl
mov eax, dword [esi + 0x18]
mov byte [edx + ebx + 0x10], cl
dec dword [edi + 0xc]
lea ecx, [esi + 0x90]
add eax, 0xffffffa8
push 0x58
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [esi + 0xe8]
mov byte [esi + 7], 0
mov dword [esi + 0x340], 6
call fcn.00424930
movq xmm0, qword [esi + 0xd8]
movq xmm1, qword [esi + 0xe0]
lea ecx, [esi + 0x90]
movq qword [esi + 0x40], xmm1
movq qword [esi + 0x38], xmm0
call fcn.00403ee0
lea eax, [esi + 0x38]
mov dword [esi + 0x340], 7
push eax
call fcn.00436770
add esp, 4
mov eax, dword [esi + 0x38]
test eax, eax
je 0x41fc21
mov ecx, eax
shl ecx, 7
lea eax, [ecx + eax*8]
push 4
push eax
push dword [esi + 0x3c]
call fcn.00402cf0
add esp, 0xc
mov dword [esi + 0x18], 0
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 0x14]
test edi, edi
jne 0x41fa53
xor eax, eax
xor edx, edx
mov dword [esi + 8], 0
mov edi, dword [ebp + 0xc]
lea eax, [eax + eax*8]
mov ebx, dword [edi + 0xc]
lea edi, [ebx + eax*8]
lea eax, [edx + edx*8]
mov edx, 0x38e38e39
mov dword [esi + 0x14], ebx
lea ecx, [ebx + eax*8]
mov dword [esi + 0x24], edi
mov eax, ecx
mov dword [esi + 0xc], ecx
sub eax, edi
mul edx
mov eax, dword [esi + 8]
shr edx, 4
add edx, eax
lea eax, [eax + eax*8]
lea edi, [ebx + eax*8]
nop word cs:[eax + eax]
nop
cmp dword [esi + 0x14], edi
je 0x41fcc0
mov eax, dword [esi + 0x18]
add edi, 0xffffffb8
mov dword [esi + 8], edx
lea edx, [esi + 0x48]
mov dword [esi + 0x340], 6
mov ecx, edi
mov dword [esi + 0x20], edi
mov byte [esi + 7], al
call fcn.00435df0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edi, dword [esi + 0x20]
dec edx
test al, al
je 0x41fc80
jmp 0x41fcf5
cmp dword [esi + 0x24], ecx
mov dword [esi + 0x340], 6
je 0x41ff3e
mov eax, dword [esi + 0x18]
mov dword [esi + 8], edx
add ecx, 0xffffffb8
lea edx, [esi + 0x48]
mov dword [esi + 0xc], ecx
mov byte [esi + 7], al
call fcn.00435df0
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
dec edx
test al, al
je 0x41fcc0
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x14]
cmp eax, edx
mov dword [esi + 0xc], eax
jbe 0x41ff3e
mov ecx, dword [ebp + 0xc]
mov dword [esi + 8], edx
xor ebx, ebx
mov edi, dword [ecx + 0x10]
mov eax, dword [ecx + 8]
mov dword [esi + 0x2c], edi
add edi, edx
mov edx, dword [ecx + 0xc]
mov dword [esi + 0x14], eax
cmp edi, eax
cmovb eax, ebx
sub edi, eax
lea eax, [edi + edi*8]
mov dword [esi + 0x24], edx
mov ecx, dword [edx + eax*8]
lea eax, [edx + eax*8 + 4]
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x2ec]
push 0x44
push eax
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 8]
mov eax, ecx
not eax
add eax, dword [esi + 0xc]
cmp eax, ecx
jae 0x41fd7a
mov ecx, dword [esi + 0x14]
lea edx, [edi + 1]
cmp edx, ecx
mov edx, dword [esi + 0x24]
cmovae ebx, ecx
neg ebx
lea ebx, [edi + ebx + 1]
push eax
push edi
push ebx
call fcn.00436350
add esp, 0xc
mov ecx, dword [ebp + 0xc]
jmp 0x41fda8
mov edx, dword [esi + 0x2c]
mov ecx, dword [esi + 0x14]
mov edi, dword [ebp + 0xc]
lea eax, [edx + 1]
cmp eax, ecx
cmovae ebx, ecx
neg ebx
lea eax, [edx + ebx + 1]
mov ebx, edx
mov edx, dword [esi + 0x24]
mov dword [edi + 0x10], eax
push dword [esi + 8]
push eax
push ebx
call fcn.00436350
add esp, 0xc
mov ecx, edi
mov eax, dword [esi + 0xc]
dec eax
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x20]
cmp eax, 0x80000000
je 0x41ff3e
mov dword [esi + 0x90], eax
lea eax, [esi + 0x94]
push 0x44
lea ecx, [esi + 0x2ec]
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea edi, [esi + 0x90]
mov ecx, edi
call fcn.00403ee0
mov eax, dword [0x578064]
xor ecx, ecx
mov eax, dword [eax]
cmp eax, 4
mov eax, 0xff
setne cl
cmovbe eax, ecx
cmp al, 0xff
je 0x41fe0a
movzx eax, al
test eax, eax
jne 0x41fe84
lea eax, [esi + 0x34]
mov dword [esi + 0x90], 0x503ba0
mov dword [esi + 0x94], 2
mov dword [esi + 0xa0], 0
mov dword [esi + 0xe8], eax
lea eax, [esi + 0x138]
mov dword [esi + 0xec], 0x41ee10
mov dword [esi + 0xf0], eax
lea eax, [esi + 0xe8]
mov dword [esi + 0xf4], 0x419a20
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x18]
mov dword [esi + 0x9c], 2
mov byte [esi + 7], al
sub esp, 4
push 0
push 0x77
push 0x503bbc
push 4
push edi
call fcn.004adac0
add esp, 0x18
push 0x88
lea eax, [esi + 0x138]
push eax
push dword [ebp + 8]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
cmp dword [esi + 0x30], 0
je 0x41feb8
cmp dword [esi + 0x21c], 0x80000000
je 0x41feb8
lea ecx, [esi + 0x21c]
call fcn.00403ee0
mov edx, connect
cmp byte [esi + 0x1c], 0
mov ecx, dword [ebp + 0xc]
mov dword [esi + 8], edx
jne 0x41fef7
mov eax, dword [0x5780ac]
mov eax, dword [eax]
mov dword [esi + 0x340], 3
test eax, 0x7fffffff
je 0x41fef7
mov dword [esi + 0x28], edx
call fcn.004ffcf0
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 8]
test al, al
jne 0x41fef7
mov byte [ecx + 4], 1
mov dword [esi + 0x28], edx
mov dword [esi + 0x340], 3
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp dword [esi + 8], 0x80000000
je 0x41ff1f
lea ecx, [esi + 0x1c0]
call fcn.00403ee0
lea ecx, [esi + 0x48]
call fcn.00403ee0
mov eax, dword [esi + 0x338]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 0x18]
mov byte [esi + 7], al
push 0x503b70
push 0x2f
push 0x503b40
call fcn.00500320
add esp, 0xc
jmp 0x41ff94
mov byte [esi + 0x13], 1
mov dword [esi + 0x340], 5
push 0x503b30
push 0x2d
push 0x503b00
call fcn.00500320
add esp, 0xc
jmp 0x41ff94
mov dword [esi + 0x340], 0
call fcn.004e3430
jmp 0x41ff94
call fcn.004e3430
ud2