Function at 0x10061e90
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100a6224
mov eax, dword fs:[0]
push eax
sub esp, 0x30
mov eax, dword [0x100e5dd4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3c], ecx
push 0x100c8840
mov dword [ebp - 0x2c], 0
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x100c884c
push eax
mov dword [0x100f2bb4], eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2b88], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2b88]
lea ecx, [ebp - 0x28]
push 0x100c8860
mov dword [ebp - 4], 0
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 1
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 1
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061370
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bd8]
mov dword [0x100f2bd8], edi
test eax, eax
je 0x10061f54
push eax
mov ecx, 0x100f2bd8
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bd8]
cmp byte [esi + 0x24], 0
jne 0x10061f9f
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10061f9f
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x10061f91
mov byte [esi + 0x24], 1
jmp 0x10061f9f
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bh, byte [esi + 0x24]
push 0x100c8884
push dword [0x100f2bb4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2b8c], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2b8c]
lea ecx, [ebp - 0x28]
push 0x100c8890
mov dword [ebp - 4], 3
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 4
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 2
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061610
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bdc]
mov dword [0x100f2bdc], edi
test eax, eax
je 0x10062026
push eax
mov ecx, 0x100f2bdc
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bdc]
cmp byte [esi + 0x24], 0
jne 0x10062071
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10062071
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x10062063
mov byte [esi + 0x24], 1
jmp 0x10062071
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bl, byte [esi + 0x24]
push 0x100c88a8
push dword [0x100f2bb4]
and bl, bh
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2b90], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2b90]
lea ecx, [ebp - 0x28]
push 0x100c88bc
mov dword [ebp - 4], 6
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 7
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 4
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x100616e0
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2be0]
mov dword [0x100f2be0], edi
test eax, eax
je 0x100620fa
push eax
mov ecx, 0x100f2be0
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2be0]
cmp byte [esi + 0x24], 0
jne 0x10062145
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10062145
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x10062137
mov byte [esi + 0x24], 1
jmp 0x10062145
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bh, byte [esi + 0x24]
push 0x100c88e0
push dword [0x100f2bb4]
and bh, bl
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2b9c], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2b9c]
lea ecx, [ebp - 0x28]
push 0x100c88ec
mov dword [ebp - 4], 9
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xa
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 8
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061d30
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2be4]
mov dword [0x100f2be4], edi
test eax, eax
je 0x100621ce
push eax
mov ecx, 0x100f2be4
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2be4]
cmp byte [esi + 0x24], 0
jne 0x10062219
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10062219
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x1006220b
mov byte [esi + 0x24], 1
jmp 0x10062219
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bl, byte [esi + 0x24]
push 0x100c8904
push dword [0x100f2bb4]
and bl, bh
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2ba0], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2ba0]
lea ecx, [ebp - 0x28]
push 0x100c8914
mov dword [ebp - 4], 0xc
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xd
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x10
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061510
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2be8]
mov dword [0x100f2be8], edi
test eax, eax
je 0x100622a2
push eax
mov ecx, 0x100f2be8
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2be8]
cmp byte [esi + 0x24], 0
jne 0x100622ed
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x100622ed
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x100622df
mov byte [esi + 0x24], 1
jmp 0x100622ed
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bh, byte [esi + 0x24]
push 0x100c8930
push dword [0x100f2bb4]
and bh, bl
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2ba4], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2ba4]
lea ecx, [ebp - 0x28]
push 0x100c8940
mov dword [ebp - 4], 0xf
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x10
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x20
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061c10
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bec]
mov dword [0x100f2bec], edi
test eax, eax
je 0x10062376
push eax
mov ecx, 0x100f2bec
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bec]
cmp byte [esi + 0x24], 0
jne 0x100623c1
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x100623c1
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x100623b3
mov byte [esi + 0x24], 1
jmp 0x100623c1
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bl, byte [esi + 0x24]
push 0x100c895c
push dword [0x100f2bb4]
and bl, bh
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2ba8], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2ba8]
lea ecx, [ebp - 0x28]
push 0x100c8968
mov dword [ebp - 4], 0x12
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x13
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x40
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061b30
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bf0]
mov dword [0x100f2bf0], edi
test eax, eax
je 0x1006244a
push eax
mov ecx, 0x100f2bf0
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bf0]
cmp byte [esi + 0x24], 0
jne 0x10062495
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10062495
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x10062487
mov byte [esi + 0x24], 1
jmp 0x10062495
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bh, byte [esi + 0x24]
push 0x100c897c
push dword [0x100f2bb4]
and bh, bl
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2bac], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2bac]
lea ecx, [ebp - 0x28]
push 0x100c8988
mov dword [ebp - 4], 0x15
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x16
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x80
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061440
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bf4]
mov dword [0x100f2bf4], edi
test eax, eax
je 0x1006251e
push eax
mov ecx, 0x100f2bf4
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bf4]
cmp byte [esi + 0x24], 0
jne 0x10062569
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10062569
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x1006255b
mov byte [esi + 0x24], 1
jmp 0x10062569
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bl, byte [esi + 0x24]
push 0x100c899c
push dword [0x100f2bb4]
and bl, bh
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2bb0], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2bb0]
lea ecx, [ebp - 0x28]
push 0x100c89a8
mov dword [ebp - 4], 0x18
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x19
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x100
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x10061290
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bf8]
mov dword [0x100f2bf8], edi
test eax, eax
je 0x100625f2
push eax
mov ecx, 0x100f2bf8
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bf8]
cmp byte [esi + 0x24], 0
jne 0x1006263d
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x1006263d
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x1006262f
mov byte [esi + 0x24], 1
jmp 0x1006263d
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov al, byte [esi + 0x24]
push 0x100c89c0
push dword [0x100f2bb4]
and al, bl
mov byte [ebp - 0x2d], al
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2b94], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2b94]
lea ecx, [ebp - 0x28]
push 0x100c89d0
mov dword [ebp - 4], 0x1b
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x1c
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x200
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x100619d0
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2bfc]
mov dword [0x100f2bfc], edi
test eax, eax
je 0x100626c9
push eax
mov ecx, 0x100f2bfc
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2bfc]
cmp byte [esi + 0x24], 0
jne 0x10062714
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x10062714
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x10062706
mov byte [esi + 0x24], 1
jmp 0x10062714
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bh, byte [esi + 0x24]
and bh, byte [ebp - 0x2d]
push 0x100c89f0
push dword [0x100f2bb4]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x28
mov dword [0x100f2b98], eax
call fcn.1007833f
mov edi, eax
add esp, 4
mov dword [ebp - 0x34], edi
mov esi, dword [0x100f2b98]
lea ecx, [ebp - 0x28]
push 0x100c8a04
mov dword [ebp - 4], 0x1e
call fcn.10019880
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x1f
lea ecx, [edi + 4]
mov dword [ebp - 0x2c], 0x400
push eax
mov dword [edi], 0
call fcn.100426d0
mov dword [edi + 0x1c], esi
mov dword [edi + 0x20], 0x100617d0
mov byte [edi + 0x24], 0
mov eax, dword [0x100f2c00]
mov dword [0x100f2c00], edi
test eax, eax
je 0x1006279e
push eax
mov ecx, 0x100f2c00
call fcn.100611d0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.100199a0
mov esi, dword [0x100f2c00]
cmp byte [esi + 0x24], 0
jne 0x100627e9
push esi
push dword [esi + 0x20]
push dword [esi + 0x1c]
call fcn.10001be6
test eax, eax
jne 0x100627e9
push dword [esi + 0x1c]
call fcn.10001e3a
test eax, eax
jne 0x100627db
mov byte [esi + 0x24], 1
jmp 0x100627e9
push dword [esi + 0x1c]
call fcn.10001d29
mov dword [esi], 0
mov bl, byte [esi + 0x24]
and bl, bh
and bl, 1
mov byte [ebp - 0x2c], bl
call fcn.10023ba0
mov esi, dword [eax + 0x70]
test esi, esi
je 0x10062807
lock inc dword [esi + 4]
mov esi, dword [eax + 0x70]
mov ecx, dword [eax + 0x6c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], esi
push dword [ebp - 0x2c]
mov dword [ebp - 4], 0x21
call fcn.10057b10
test esi, esi
je 0x10062844
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x10062844
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x10062844
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 4]
mov ecx, dword [ebp - 0x3c]
mov dl, bl
add ecx, 4
xchg byte [ecx], dl
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10077d23
mov esp, ebp
pop ebp
ret