Function at 0x5b86e0f9
Capabilities:
Link many functions at runtime

Disassembly:
push 0x44
mov eax, 0x5b88d4a8
call fcn.5b8878a0
mov ebx, ecx
mov dword [ebp - 0x1c], ebx
mov esi, dword [0x5b89602c]
cmp esi, 0x5b89602c
je 0x5b86e135
test byte [esi + 0x1c], 4
je 0x5b86e135
movzx eax, dl
mov edx, 0x5b817eb8
push eax
push dword [esi + 0x14]
push dword [esi + 0x10]
push 0x1c
pop ecx
call fcn.5b81ae33
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x38], eax
mov eax, dword [ebx + 0x1c]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 4]
xor ebx, ebx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], ebx
mov edx, 0x5b817d84
mov dword [ebp - 4], ebx
lea ecx, [ebp - 0x24]
call fcn.5b86fecc
push eax
call fcn.5b82c619
mov esi, dword [ebp - 0x24]
push 0x5b817d94
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov edi, eax
test edi, edi
jne 0x5b86e188
mov dl, 1
mov ecx, 0x5b817d94
call fcn.5b871aec
jmp 0x5b86e18a
mov eax, ebx
push eax
call fcn.5b82c619
push 0x5b817da4
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x34], eax
test eax, eax
jne 0x5b86e1b1
mov dl, 1
mov ecx, 0x5b817da4
call fcn.5b871aec
jmp 0x5b86e1b3
mov eax, ebx
push eax
call fcn.5b82c619
push 0x5b817dbc
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x5b86e1da
mov dl, 1
mov ecx, 0x5b817dbc
call fcn.5b871aec
jmp 0x5b86e1dc
mov eax, ebx
push eax
call fcn.5b82c619
push 0x5b817dd4
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x30], eax
test eax, eax
jne 0x5b86e203
mov dl, 1
mov ecx, 0x5b817dd4
call fcn.5b871aec
jmp 0x5b86e205
mov eax, ebx
push eax
call fcn.5b82c619
push 0x5b817de8
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x5b86e22c
mov dl, 1
mov ecx, 0x5b817de8
call fcn.5b871aec
jmp 0x5b86e22e
mov eax, ebx
push eax
call fcn.5b82c619
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], ebx
push eax
mov eax, dword [ebp - 0x14]
mov ecx, edi
push ebx
push ebx
push dword [eax]
call dword [0x5b89d478]
call edi
mov edi, eax
test edi, edi
js 0x5b86e576
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x50], bl
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x14]
mov edi, ebx
mov byte [ebp - 4], 1
cmp dword [eax + 0x10], ebx
jbe 0x5b86e2be
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + edi*4]
mov dword [ebp - 0x2c], eax
test eax, eax
je 0x5b86e28e
cmp word [eax], bx
jne 0x5b86e296
mov eax, 0x5b817df8
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x28]
push eax
push ebx
push edi
push dword [ebp - 0x10]
call dword [0x5b89d478]
call dword [ebp - 0x28]
mov ecx, eax
mov dword [ebp - 0x3c], ecx
test ecx, ecx
js 0x5b86e371
mov eax, dword [ebp - 0x14]
inc edi
cmp edi, dword [eax + 0x10]
jb 0x5b86e27c
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x5b86e309
mov eax, dword [eax + 0x14]
mov ecx, ebx
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], ecx
mov eax, dword [eax + ecx*4]
mov edi, dword [ebp - 0x30]
mov ecx, edi
push ebx
push 5
push eax
push dword [ebp - 0x10]
mov dword [ebp - 0x38], eax
call dword [0x5b89d478]
call edi
mov edi, eax
test edi, edi
js 0x5b86e3a6
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
inc ecx
mov dword [ebp - 0x2c], ecx
cmp ecx, dword [eax + 0x10]
mov eax, dword [ebp - 0x3c]
jb 0x5b86e2d3
mov ecx, 0x5b817e10
call fcn.5b8273a5
mov edi, dword [ebp - 0x18]
test eax, eax
je 0x5b86e321
mov ecx, edi
call fcn.5b86dfc8
push ebx
push 5
push edi
push dword [ebp - 0x10]
mov edi, dword [ebp - 0x30]
mov ecx, edi
call dword [0x5b89d478]
call edi
mov edi, eax
test edi, edi
jns 0x5b86e3df
lfence
mov ecx, dword [0x5b89602c]
cmp ecx, 0x5b89602c
je 0x5b86e5a1
test byte [ecx + 0x1c], 1
je 0x5b86e5a1
push edi
push dword [ebp - 0x18]
mov edx, 0x5b817eb8
push dword [ecx + 0x14]
push dword [ecx + 0x10]
push 0x20
jmp 0x5b86e3d4
lfence
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e5a3
test byte [eax + 0x1c], 1
je 0x5b86e5a3
push ecx
push dword [ebp - 0x2c]
push edi
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.5b86d0db
mov ecx, dword [ebp - 0x3c]
jmp 0x5b86e5a3
lfence
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e5a1
test byte [eax + 0x1c], 1
je 0x5b86e5a1
push edi
push dword [ebp - 0x38]
mov edx, 0x5b817eb8
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x1f
pop ecx
call fcn.5b81ae55
jmp 0x5b86e5a1
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ecx + 0x20]
mov edx, dword [ecx + 0x1c]
and eax, 2
add eax, eax
mov ecx, eax
test edx, edx
je 0x5b86e43b
mov edx, dword [edx + 0x10]
test edx, edx
je 0x5b86e43b
mov edx, dword [edx + 4]
test edx, edx
je 0x5b86e43b
mov ecx, 0x5b8178b0
mov di, word [edx]
cmp di, word [ecx]
jne 0x5b86e42a
test di, di
je 0x5b86e42f
mov di, word [edx + 2]
cmp di, word [ecx + 2]
jne 0x5b86e42a
add edx, 4
add ecx, 4
test di, di
jne 0x5b86e406
jmp 0x5b86e42f
sbb ebx, ebx
or ebx, 1
mov ecx, eax
test ebx, ebx
jne 0x5b86e43b
or ecx, 0x100
mov edi, dword [ebp - 0x44]
lea eax, [ebp - 0x20]
push eax
push ecx
push 2
push dword [ebp - 0x10]
mov ecx, edi
call dword [0x5b89d478]
call edi
mov edi, eax
test edi, edi
jns 0x5b86e48a
lfence
mov ecx, dword [0x5b89602c]
cmp ecx, 0x5b89602c
je 0x5b86e5a1
test byte [ecx + 0x1c], 1
je 0x5b86e5a1
push edi
push dword [ecx + 0x14]
mov edx, 0x5b817eb8
push dword [ecx + 0x10]
push 0x21
jmp 0x5b86e59b
mov ecx, dword [ebp - 0x20]
cmp ecx, 2
jne 0x5b86e4e0
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e551
test byte [eax + 0x1c], 4
je 0x5b86e4c4
push ecx
push dword [eax + 0x14]
mov edx, 0x5b817eb8
push dword [eax + 0x10]
push 0x22
pop ecx
call fcn.5b81ae33
mov ecx, dword [ebp - 0x20]
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e551
test byte [eax + 0x1c], 4
je 0x5b86e551
push ecx
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x23
jmp 0x5b86e546
cmp ecx, 0xb
jne 0x5b86e502
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e551
test byte [eax + 0x1c], 4
je 0x5b86e551
push ecx
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x24
jmp 0x5b86e546
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e551
test byte [eax + 0x1c], 4
je 0x5b86e530
push ecx
push dword [eax + 0x14]
mov edx, 0x5b817eb8
push dword [eax + 0x10]
push 0x25
pop ecx
call fcn.5b81ae33
mov ecx, dword [ebp - 0x20]
mov eax, dword [0x5b89602c]
cmp eax, 0x5b89602c
je 0x5b86e551
test byte [eax + 0x1c], 2
je 0x5b86e551
push ecx
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x26
mov edx, 0x5b817eb8
pop ecx
call fcn.5b81ae33
push dword [ebp - 0x10]
mov edi, dword [ebp - 0x34]
mov ecx, edi
mov byte [ebp - 0x50], 1
call dword [0x5b89d478]
call edi
test esi, esi
je 0x5b86e570
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.5b887840
ret
lfence
mov ecx, dword [0x5b89602c]
cmp ecx, 0x5b89602c
je 0x5b86e5a1
test byte [ecx + 0x1c], 1
je 0x5b86e5a1
push edi
push dword [ecx + 0x14]
mov edx, 0x5b817eb8
push dword [ecx + 0x10]
push 0x1d
pop ecx
call fcn.5b81ae33
mov ecx, edi
call fcn.5b871bdd
int3