Function at 0x10103640
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xaec
push ebx
push esi
push edi
push 0
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_LoadLibraryExA]
mov ebx, eax
test ebx, ebx
je 0x101039e4
push dword [ebp + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push ebx
call esi
test eax, eax
jne 0x101039e6
cmp dword [0x103213e0], eax
jne 0x101039e4
mov edi, dword [0x103213e4]
test edi, edi
jne 0x101037f0
xorps xmm0, xmm0
mov dword [0x1032169c], edi
movups xmmword [0x1032167c], xmm0
movups xmmword [0x1032168c], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push edi
push edi
push 0x1026f8b0
mov dword [0x1032167c], eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [0x10321680], eax
test eax, eax
je 0x10103989
push str.ImagehlpApiVersionEx
push eax
call esi
push str.SymInitialize
push dword [0x10321680]
mov dword [0x10321684], eax
call esi
push str.SymSetOptions
push dword [0x10321680]
mov dword [0x10321688], eax
call esi
push str.SymGetOptions
push dword [0x10321680]
mov dword [0x1032168c], eax
call esi
push str.SymLoadModule64
push dword [0x10321680]
mov dword [0x10321690], eax
call esi
push str.SymGetModuleInfo64
push dword [0x10321680]
mov dword [0x10321694], eax
call esi
push str.SymFromName
push dword [0x10321680]
mov dword [0x10321698], eax
call esi
xorps xmm0, xmm0
mov dword [0x1032169c], eax
mov ecx, 0xb
movlpd qword [esp + 0x10], xmm0
mov word [esp + 0x10], cx
mov ecx, dword [0x10321684]
test ecx, ecx
je 0x10103984
cmp dword [0x10321688], edi
je 0x10103984
cmp dword [0x10321694], edi
je 0x10103984
cmp dword [0x10321698], edi
je 0x10103984
test eax, eax
je 0x10103984
lea eax, [esp + 0x10]
push eax
call ecx
cmp word [esp + 0x10], 0xb
jb 0x10103984
push edi
push edi
push dword [0x1032167c]
call dword [0x10321688]
test eax, eax
je 0x10103984
mov eax, dword [0x10321690]
test eax, eax
je 0x101037e1
cmp dword [0x1032168c], edi
je 0x101037e1
call eax
and eax, 0xfffffffc
or eax, 0x2704
push eax
call dword [0x1032168c]
mov dword [0x103213e4], 0x1032167c
mov edi, 0x1032167c
mov ecx, dword [edi + 0x18]
mov eax, ebx
push 0
cdq
mov esi, edx
mov ebx, eax
push esi
push ebx
push 0
push dword [ebp + 8]
push 0
push dword [edi]
call ecx
or eax, edx
jne 0x1010381b
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x101039e4
push 0x684
lea eax, [esp + 0x478]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x470], 0x688
mov eax, dword [edi + 0x1c]
lea ecx, [esp + 0x470]
push ecx
push esi
push ebx
push dword [edi]
call eax
test eax, eax
je 0x101039e4
lea ecx, [esp + 0x18]
mov edx, 0x200
lea esi, [esp + 0x494]
mov eax, ecx
sub esi, eax
nop word [eax + eax]
lea eax, [edx + 0x7ffffdfe]
test eax, eax
je 0x10103889
mov al, byte [esi + ecx]
test al, al
je 0x10103889
mov byte [ecx], al
inc ecx
sub edx, 1
jne 0x10103870
test edx, edx
lea eax, [ecx - 1]
cmovne eax, ecx
mov byte [eax], 0
je 0x101039e4
mov ecx, 0x200
lea eax, [esp + 0x18]
cmp byte [eax], 0
je 0x101038ae
inc eax
sub ecx, 1
jne 0x101038a3
mov ebx, 0x200
mov esi, ecx
mov eax, ebx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x101039e4
push accept
push 0x10271500
push ecx
mov edx, ebx
lea ecx, [esp + 0x24]
sub edx, esi
add ecx, esi
call fcn.10101150
test eax, eax
js 0x101039e4
mov ecx, ebx
lea eax, [esp + 0x18]
nop
cmp byte [eax], 0
je 0x101038fb
inc eax
sub ecx, 1
jne 0x101038f0
mov eax, ebx
mov esi, ecx
sub eax, ecx
neg esi
sbb esi, esi
and esi, eax
test ecx, ecx
je 0x101039e4
push accept
push dword [ebp + 0xc]
sub ebx, esi
push ecx
lea ecx, [esp + 0x24]
mov edx, ebx
add ecx, esi
call fcn.10101150
test eax, eax
js 0x101039e4
push 0x258
lea eax, [esp + 0x21c]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x218], 0x58
lea ecx, [esp + 0x218]
mov dword [esp + 0x268], 0x200
mov eax, dword [edi + 0x20]
push ecx
lea ecx, [esp + 0x1c]
push ecx
push dword [edi]
call eax
test eax, eax
je 0x101039e4
mov eax, dword [esp + 0x250]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [0x10321680]
mov dword [0x103213e0], 1
test eax, eax
je 0x1010399e
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [0x10321684], 0
mov dword [0x10321688], 0
mov dword [0x1032168c], 0
mov dword [0x10321690], 0
mov dword [0x10321694], 0
mov dword [0x10321698], 0
mov dword [0x1032169c], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8