Function at 0x100e74a0
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8a4
mov eax, dword [0x102519c8]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0x200
push eax
mov esi, ecx
mov dword [ebp - 0x830], ebx
push ebx
mov dword [ebp - 0x83c], esi
mov dword [ebp - 0x840], eax
call fcn.10176c90
add esp, 0xc
test eax, eax
jne 0x100e74f6
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.101f99c6
mov esp, ebp
pop ebp
ret 8
mov eax, dword [esi + 0xbc]
mov ecx, 0x10202940
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100e7527
test dx, dx
je 0x100e7523
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100e7527
add eax, 4
add ecx, 4
test dx, dx
jne 0x100e7501
xor edi, edi
jmp 0x100e752c
sbb edi, edi
or edi, 1
push dword [ebp - 0x840]
lea eax, [ebp - 0x824]
mov dword [ebp - 0x850], edi
push 0x10202944
push ebx
push eax
call fcn.100dbb30
add esp, 8
push eax
lea eax, [ebp - 0x81c]
push eax
call fcn.10007f40
add esp, 0xc
push eax
lea eax, [ebp - 0x864]
push eax
call fcn.10007f40
mov edx, dword [ebp - 0x81c]
or ebx, 0xffffffff
add esp, 0xc
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e758d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x824]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e75aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x864]
mov dword [ebp - 0x870], 0
push eax
push 0
lea ecx, [ebp - 0x870]
mov dword [ebp - 0x86c], 0
mov dword [ebp - 0x868], 0
call fcn.100048e0
push str.Shell_
push dword [ebp - 0x840]
lea ecx, [ebp - 0x81c]
call fcn.10002490
push eax
lea eax, [ebp - 0x860]
push eax
call fcn.10007f40
mov edx, dword [ebp - 0x81c]
add esp, 0xc
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e761f
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x854], 0
test edi, edi
je 0x100e764f
call fcn.100ddfb0
test eax, eax
jne 0x100e764f
push dword [ebp - 0x840]
mov ecx, esi
push dword [ebp - 0x830]
call fcn.100e6b70
mov dword [ebp - 0x854], eax
call fcn.100dd880
cmp dword [ebp - 0x854], 0
mov dword [ebp - 0x838], eax
je 0x100e785a
cmp eax, 8
je 0x100e7850
cmp eax, 7
je 0x100e7850
push 0x2810
lea ecx, [ebp - 0x844]
call fcn.10002490
push 0x2807
lea ecx, [ebp - 0x828]
mov eax, dword [eax]
mov dword [ebp - 0x81c], eax
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x820]
mov ebx, dword [eax]
call fcn.10002490
push eax
lea eax, [ebp - 0x858]
push 0x27cd
push eax
call fcn.100053d0
add esp, 0xc
lea ecx, [ebp - 0x82c]
mov edi, dword [eax]
push 0x10202940
call fcn.10002490
push eax
lea eax, [ebp - 0x824]
push 0x2758
push eax
call fcn.100053d0
add esp, 0xc
mov esi, dword [eax]
push 1
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 0
push 0xffffffffffffffff
push 4
lea eax, [ebp - 0x870]
push eax
push 0
push 0x28
push dword [ebp - 0x81c]
push ebx
push edi
push esi
mov esi, dword [ebp - 0x83c]
mov ecx, esi
call fcn.100cd930
mov edx, dword [ebp - 0x824]
or ebx, 0xffffffff
mov edi, eax
add edx, 0xfffffff0
mov ecx, ebx
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x100e7778
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x82c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e7795
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x858]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e77b2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x820]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e77cf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x828]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e77ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x844]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e7809
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 2
push ecx
mov ecx, esp
push dword [ebp - 0x840]
call fcn.10002490
push dword [ebp - 0x830]
mov ecx, esi
push edi
call fcn.100e56b0
mov edi, 1
jmp 0x100e8271
mov dword [ebp - 0x85c], 0
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
push 0x10202940
lea ecx, [ebp - 0x858]
lea esi, [eax + 0x10]
mov dword [ebp - 0x820], esi
call fcn.10002490
lea eax, [ebp - 0x85c]
push eax
push dword [ebp - 0x860]
push dword [ebp - 0x830]
call fcn.100e5610
test eax, eax
jne 0x100e7c0b
push 0x400
push eax
mov dword [ebp - 0x834], eax
lea eax, [ebp - 0x404]
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
call fcn.10002d70
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0xc]
mov ecx, dword [ebp - 0x83c]
add eax, 0x10
mov dword [ebp - 0x828], eax
lea eax, [ebp - 0x828]
push eax
push dword [ebp - 0x840]
push dword [ebp - 0x830]
call fcn.100e5ad0
jmp 0x100e7900
mov edi, dword [ebp - 0x85c]
call fcn.10003180
mov esi, dword [eax + 0x154]
test esi, esi
je 0x100e791c
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push 0x3b
call fcn.10003680
add esp, 4
push 0x200
test eax, eax
je 0x100e7941
lea ecx, [ebp - 0x404]
push ecx
push dword [ebp - 0x834]
push edi
call eax
jmp 0x100e7955
lea eax, [ebp - 0x404]
push eax
push dword [ebp - 0x834]
push edi
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyW]
mov edi, eax
test esi, esi
je 0x100e7962
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test edi, edi
jne 0x100e7bd7
inc dword [ebp - 0x834]
lea eax, [ebp - 0x404]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
push 0x10202940
push eax
call esi
test eax, eax
je 0x100e7900
push str.NoAddOns
lea eax, [ebp - 0x404]
push eax
call esi
mov esi, dword [ebp - 0x850]
test eax, eax
jne 0x100e79ac
test esi, esi
jne 0x100e7900
push str.command
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x860]
push eax
lea eax, [ebp - 0x848]
push eax
call fcn.10007f40
add esp, 0xc
push eax
lea eax, [ebp - 0x824]
push eax
call fcn.10007f40
mov edx, dword [ebp - 0x848]
add esp, 0xc
add edx, 0xfffffff0
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e79fb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x410
lea eax, [ebp - 0x814]
push 0
push eax
call sub.msvcrt.dll_memset
mov edi, dword [ebp - 0x824]
lea eax, [ebp - 0x814]
push 0x410
push eax
lea eax, [ebp - 0x82c]
mov dword [ebp - 0x82c], 1
push eax
push 0x10202940
push edi
push dword [ebp - 0x830]
call fcn.10176b60
add esp, 0x24
test eax, eax
je 0x100e7bb7
push 0x10202940
lea eax, [ebp - 0x814]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x100e7bb7
lea eax, [ebp - 0x814]
push eax
lea ecx, [ebp - 0x81c]
call fcn.10002490
push 0x10202c94
push 0x10202c94
lea ecx, [ebp - 0x81c]
call fcn.10003450
cmp dword [ebp - 0x82c], 2
je 0x100e7aab
cmp eax, 1
jle 0x100e7aab
mov dword [ebp - 0x854], 1
jmp 0x100e7b9a
lea eax, [ebp - 0x814]
push 0x208
push eax
call fcn.100d9f60
add esp, 8
lea eax, [ebp - 0x814]
lea ecx, [ebp - 0x844]
push eax
call fcn.10002490
mov ecx, dword [ebp - 0x83c]
lea eax, [ebp - 0x844]
push eax
call fcn.100e57f0
test esi, esi
mov esi, dword [ebp - 0x844]
je 0x100e7b10
mov eax, dword [ebp - 0x83c]
push dword [eax + 0xbc]
push esi
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x100e7b10
mov dword [ebp - 0x854], 1
lea eax, [ebp - 0x404]
push eax
lea ecx, [ebp - 0x84c]
call fcn.10002490
push eax
lea eax, [ebp - 0x828]
push eax
call fcn.10033f10
mov edx, dword [ebp - 0x84c]
add esp, 8
mov byte [ebp - 0x815], al
add edx, 0xfffffff0
mov ecx, ebx
lock xadd dword [edx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x100e7b5b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov al, byte [ebp - 0x815]
test al, al
je 0x100e7b83
lea eax, [ebp - 0x844]
push eax
lea ecx, [ebp - 0x820]
call fcn.10002790
lea eax, [ebp - 0x824]
push eax
lea ecx, [ebp - 0x858]
call fcn.10002790
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100e7b9a
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x81c]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e7bb7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x100e7900
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x100e7900
push dword [ebp - 0x85c]
call fcn.10034ac0
mov edx, dword [ebp - 0x828]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e7bff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x850]
mov esi, dword [ebp - 0x820]
mov eax, dword [esi - 0xc]
test eax, eax
sete cl
mov byte [ebp - 0x815], cl
test eax, eax
jne 0x100e7c42
call fcn.100db460
cmp eax, 0xa
jb 0x100e7c3c
call fcn.10009c50
mov cl, byte [ebp - 0x815]
neg eax
sbb al, al
not al
and cl, al
jmp 0x100e7c42
mov cl, byte [ebp - 0x815]
test edi, edi
je 0x100e7e05
cmp dword [ebp - 0x854], 0
jne 0x100e7c6b
test cl, cl
je 0x100e823b
cmp dword [ebp - 0x830], reloc.OLEAUT32.dll_SysReAllocString
jne 0x100e823b
mov eax, dword [ebp - 0x838]
cmp eax, 8
je 0x100e7dfb
cmp eax, 7
je 0x100e7dfb
push 0x2810
lea ecx, [ebp - 0x828]
call fcn.10002490
push 0x2807
lea ecx, [ebp - 0x820]
mov eax, dword [eax]
mov dword [ebp - 0x838], eax
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x82c]
mov eax, dword [eax]
mov dword [ebp - 0x84c], eax
call fcn.10002490
push eax
lea eax, [ebp - 0x824]
push 0x27cd
push eax
call fcn.100053d0
add esp, 0xc
lea ecx, [ebp - 0x81c]
mov ebx, dword [eax]
push 0x10202940
call fcn.10002490
push eax
lea eax, [ebp - 0x848]
push 0x2758
push eax
call fcn.100053d0
add esp, 0xc
mov edi, dword [eax]
push 1
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
mov ecx, dword [ebp - 0x83c]
lea eax, [ebp - 0x870]
push 0
push 0xffffffffffffffff
push 4
push eax
push 0
push 0x28
push dword [ebp - 0x838]
push dword [ebp - 0x84c]
push ebx
push edi
call fcn.100cd930
lea ecx, [ebp - 0x848]
mov edi, eax
call fcn.10007e10
lea ecx, [ebp - 0x81c]
call fcn.10007e10
lea ecx, [ebp - 0x824]
call fcn.10007e10
lea ecx, [ebp - 0x82c]
call fcn.10007e10
lea ecx, [ebp - 0x820]
call fcn.10007e10
lea ecx, [ebp - 0x828]
call fcn.10007e10
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 2
push ecx
mov ecx, esp
push dword [ebp - 0x840]
call fcn.10002490
push dword [ebp - 0x830]
mov ecx, dword [ebp - 0x83c]
push edi
call fcn.100e56b0
or ebx, 0xffffffff
mov edi, 1
jmp 0x100e823d
cmp dword [0x1025b434], 0
je 0x100e823b
cmp dword [esi - 0xc], 0
je 0x100e823b
lea eax, [ebp - 0x838]
mov dword [ebp - 0x834], 0
push esi
push eax
call fcn.10009120
mov ecx, dword [0x1025b434]
lea edi, [ebp - 0x834]
add esp, 8
mov edx, dword [ecx]
push edi
push 1
push dword [eax]
push ecx
call dword [edx + 0x40]
lea ecx, [ebp - 0x838]
call fcn.10007e10
cmp dword [ebp - 0x834], 0
je 0x100e823b
push 0
lea ecx, [ebp - 0x8a4]
call fcn.100e52b0
push dword [ebp - 0x834]
lea ecx, [ebp - 0x8a4]
call fcn.100e5a30
mov eax, dword [ebp - 0x898]
cmp dword [eax - 0xc], 0
je 0x100e821d
push eax
call fcn.1000aa00
add esp, 4
test eax, eax
je 0x100e8088
mov eax, dword [ebp - 0x88c]
mov ecx, dword [ebp - 0x890]
sub eax, ecx
sar eax, 2
test eax, eax
je 0x100e821d
push ecx
lea ecx, [ebp - 0x820]
call fcn.1001b810
lea eax, [ebp - 0x820]
push 0x10202940
push eax
call fcn.10033f60
add esp, 8
test al, al
je 0x100e8078
push str._extoff
push dword [ebp - 0x820]
call sub.msvcrt.dll__wcsicmp
add esp, 8
test eax, eax
je 0x100e8078
push 0x2810
lea ecx, [ebp - 0x844]
call fcn.10002490
push 0x2807
lea ecx, [ebp - 0x828]
mov eax, dword [eax]
mov dword [ebp - 0x838], eax
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x82c]
mov eax, dword [eax]
mov dword [ebp - 0x84c], eax
call fcn.10002490
push eax
lea eax, [ebp - 0x824]
push 0x27cd
push eax
call fcn.100053d0
add esp, 0xc
lea ecx, [ebp - 0x81c]
mov ebx, dword [eax]
push 0x10202940
call fcn.10002490
push eax
lea eax, [ebp - 0x848]
push 0x2758
push eax
call fcn.100053d0
add esp, 0xc
mov edi, dword [eax]
push 1
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
mov ecx, dword [ebp - 0x83c]
lea eax, [ebp - 0x870]
push 0
push 0xffffffffffffffff
push 4
push eax
push 0
push 0x28
push dword [ebp - 0x838]
push dword [ebp - 0x84c]
push ebx
push edi
call fcn.100cd930
lea ecx, [ebp - 0x848]
mov edi, eax
call fcn.10007e10
lea ecx, [ebp - 0x81c]
call fcn.10007e10
lea ecx, [ebp - 0x824]
call fcn.10007e10
lea ecx, [ebp - 0x82c]
call fcn.10007e10
lea ecx, [ebp - 0x828]
call fcn.10007e10
lea ecx, [ebp - 0x844]
call fcn.10007e10
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
lea eax, [ebp - 0x898]
mov ecx, esp
push eax
call fcn.1001b810
push 3
push ecx
lea eax, [ebp - 0x858]
mov ecx, esp
push eax
call fcn.1001b810
push dword [ebp - 0x830]
mov ecx, dword [ebp - 0x83c]
push edi
call fcn.100e56b0
lea ecx, [ebp - 0x820]
call fcn.10007e10
jmp 0x100e821d
call fcn.100ddff0
test eax, eax
jne 0x100e821d
mov ecx, dword [ebp - 0x83c]
call fcn.100e5fa0
test eax, eax
je 0x100e821d
push 0x2810
lea ecx, [ebp - 0x828]
call fcn.10002490
push 0x2807
lea ecx, [ebp - 0x820]
mov eax, dword [eax]
mov dword [ebp - 0x838], eax
call fcn.10002490
push 0x10202940
lea ecx, [ebp - 0x82c]
mov eax, dword [eax]
mov dword [ebp - 0x84c], eax
call fcn.10002490
push eax
lea eax, [ebp - 0x824]
push 0x273a
push eax
call fcn.100053d0
add esp, 0xc
lea ecx, [ebp - 0x81c]
mov ebx, dword [eax]
push 0x10202940
call fcn.10002490
push eax
lea eax, [ebp - 0x848]
push 0x2758
push eax
call fcn.100053d0
add esp, 0xc
mov edi, dword [eax]
push 1
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 1
push 0xffffffffffffffff
push 0xffffffffffffffff
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
mov ecx, dword [ebp - 0x83c]
lea eax, [ebp - 0x870]
push 0
push 0xffffffffffffffff
push 4
push eax
push 0
push 0x28
push dword [ebp - 0x838]
push dword [ebp - 0x84c]
push ebx
push edi
call fcn.100cd930
lea ecx, [ebp - 0x848]
mov edi, eax
call fcn.10007e10
lea ecx, [ebp - 0x81c]
call fcn.10007e10
lea ecx, [ebp - 0x824]
call fcn.10007e10
lea ecx, [ebp - 0x82c]
call fcn.10007e10
lea ecx, [ebp - 0x820]
call fcn.10007e10
lea ecx, [ebp - 0x828]
call fcn.10007e10
push 0
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push ecx
mov ecx, esp
push 0x10202940
call fcn.10002490
push 4
push ecx
mov ecx, esp
push dword [ebp - 0x840]
call fcn.10002490
push dword [ebp - 0x830]
mov ecx, dword [ebp - 0x83c]
push edi
call fcn.100e56b0
lea ecx, [ebp - 0x8a4]
call fcn.100e54a0
mov eax, dword [ebp - 0x834]
test eax, eax
je 0x100e8238
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or ebx, 0xffffffff
xor edi, edi
mov edx, dword [ebp - 0x858]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e825a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x100e8271
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x860]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x100e828e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [ebp - 0x870]
call fcn.1002a3c0
mov eax, dword [ebp - 0x864]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x100e82b4
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101f99c6
mov esp, ebp
pop ebp
ret 8