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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5b99dc
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
push ebx
push esi
push edi
mov eax, dword [0x6c56f8]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov dword [esp + 0xa8], ecx
mov eax, dword [ecx + 0xf0]
mov eax, dword [eax]
mov edi, dword [ecx + 0xdc]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], eax
mov ebx, dword [ebp + 0x10]
mov esi, dword [ecx + 0xf0]
mov eax, dword [ecx + 0xdc]
test edi, edi
je 0x4810f6
cmp edi, eax
je 0x4810fb
call fcn.0057a4ca
cmp dword [esp + 0x1c], esi
je 0x482442
test ebx, ebx
je 0x48111a
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x482442
cmp dword [ebp + 0x14], 0
je 0x48112c
mov eax, dword [ebp + 0x14]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test edi, edi
jne 0x481222
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x481149
call fcn.0057a4ca
mov esi, dword [esp + 0x1c]
mov edx, dword [esi + 8]
add esi, 8
cmp dword [edx - 0xc], 0
mov dword [esp + 0x30], esi
je 0x482379
mov eax, dword [0x6dd118]
mov edx, dword [eax + 0xc]
mov ecx, 0x6dd118
call edx
add eax, 0x10
mov dword [esp + 0x24], eax
mov dword [esp + 0xc0], 1
mov eax, dword [0x6dd118]
mov edx, dword [eax + 0xc]
mov ecx, 0x6dd118
call edx
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x18]
mov byte [esp + 0x17], 0
test eax, eax
jne 0x481229
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x4811c2
call fcn.0057a4ca
mov eax, dword [esi]
push eax
lea edi, [esp + 0x1b]
call fcn.00482590
test al, al
je 0x481cb0
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
mov dword [esp + 0x44], eax
mov byte [esp + 0xc0], 4
mov ecx, 0x69375c
test ecx, 0xffff0000
jne 0x48122d
mov edx, ecx
movzx esi, dx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x48123d
push esi
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0040cec6
jmp 0x48123d
mov eax, dword [edi]
jmp 0x48113b
mov eax, dword [eax]
jmp 0x4811b4
push 0x18
push 0x69375c
lea eax, [esp + 0x4c]
call fcn.0040b3ac
mov byte [esp + 0xc0], 5
mov ebx, dword [esp + 0x18]
test ebx, ebx
jne 0x4812cc
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x481262
call fcn.0057a4ca
mov edx, dword [esp + 0x30]
push edx
lea eax, [esp + 0x90]
push eax
lea esi, [esp + 0x4c]
call fcn.00413865
add esp, 8
mov byte [esp + 0xc0], 6
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4812de
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4812d0
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4812d0
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4812bf
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x18]
jmp 0x4812de
mov eax, dword [ebx]
jmp 0x481254
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x28]
call fcn.0040b3ac
mov byte [esp + 0xc0], 5
mov eax, dword [esp + 0x8c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481309
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481331
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x481347
push str._x64_
lea ecx, [esp + 0x24]
push ecx
call fcn.00425f4d
test ebx, ebx
jne 0x48141a
call fcn.0057a4ca
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp edx, dword [eax + 0x14]
jne 0x481364
call fcn.0057a4ca
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x5c]
push eax
add edi, 8
push edi
call fcn.0047ca40
mov esi, eax
mov byte [esp + 0xc0], 9
test ebx, ebx
jne 0x481421
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x48139d
call fcn.0057a4ca
lea edx, [esp + 0x84]
push 0x69314c
lea ecx, [edi + 4]
push edx
call fcn.0040fcd8
mov byte [esp + 0xc8], 0xa
push esi
lea ecx, [esp + 0xbc]
push ecx
mov esi, eax
call fcn.00413865
add esp, 0x10
mov byte [esp + 0xc0], 0xb
mov ecx, dword [eax]
mov esi, dword [esp + 0x24]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x481436
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x481428
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x481428
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x481411
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x24], ebx
jmp 0x481436
mov eax, dword [ebx]
jmp 0x481356
mov eax, dword [ebx]
jmp 0x48138f
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x2c]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0xa
mov eax, dword [esp + 0xb0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481461
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 9
mov eax, dword [esp + 0x84]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48148c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4814b4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
call dword [ebp + 8]
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x2c], edi
mov byte [esp + 0xc0], 0x10
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0xc0], 0x12
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
cmp byte [esp + 0x17], 0
je 0x4818a2
mov dword [esp + 0x34], eax
mov byte [esp + 0xc0], 0x13
mov ebx, 0x69389c
shr ebx, 0x10
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x481560
mov ecx, 0x69389c
movzx esi, cx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x481570
push esi
push eax
lea edx, [esp + 0x3c]
push edx
call fcn.0040cec6
jmp 0x481570
push 6
push 0x69389c
lea eax, [esp + 0x3c]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x14
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x481632
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x481599
call fcn.0057a4ca
mov eax, dword [esp + 0x1c]
add eax, 8
push eax
lea edx, [esp + 0x54]
push edx
lea esi, [esp + 0x3c]
call fcn.00413865
mov byte [esp + 0xc8], 0x15
lea ecx, [esp + 0x6c]
push str.InProcServer32
push ecx
mov ecx, eax
call fcn.0040fcd8
mov byte [esp + 0xd0], 0x16
mov eax, dword [eax]
push 1
mov edx, eax
lea ecx, [esp + 0xb0]
call fcn.00480d30
add esp, 0x14
mov byte [esp + 0xc0], 0x17
mov ecx, dword [eax]
lea eax, [ecx - 0x10]
lea esi, [edi - 0x10]
cmp eax, esi
je 0x481647
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x481639
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x481639
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x481625
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x30]
jmp 0x481647
mov eax, dword [eax]
jmp 0x48158b
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x34]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x16
mov eax, dword [esp + 0x9c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481672
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x15
mov eax, dword [esp + 0x64]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48169a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x14
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4816c2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x12
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4816ea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
mov dword [esp + 0x4c], eax
mov byte [esp + 0xc0], 0x1c
test ebx, ebx
jne 0x481730
mov ecx, 0x69389c
movzx esi, cx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x481740
push esi
push eax
lea edx, [esp + 0x54]
push edx
call fcn.0040cec6
jmp 0x481740
push 6
push 0x69389c
lea eax, [esp + 0x54]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x1d
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x481801
call fcn.0057a4ca
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp esi, dword [eax + 0x14]
jne 0x481769
call fcn.0057a4ca
lea eax, [esi + 8]
push eax
lea eax, [esp + 0x78]
push eax
lea esi, [esp + 0x54]
call fcn.00413865
mov byte [esp + 0xc8], 0x1e
lea ecx, [esp + 0xb4]
push str.LocalServer32
push ecx
mov ecx, eax
call fcn.0040fcd8
mov byte [esp + 0xd0], 0x1f
mov eax, dword [eax]
push 1
mov edx, eax
lea ecx, [esp + 0x80]
call fcn.00480d30
add esp, 0x14
mov byte [esp + 0xc0], 0x20
mov ecx, dword [eax]
mov esi, dword [esp + 0x28]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x481816
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x481808
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x481808
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4817f8
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x28], ebx
jmp 0x481816
mov eax, dword [eax]
jmp 0x48175b
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x30]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x1f
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48183e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x1e
mov eax, dword [esp + 0xac]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481869
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x1d
mov eax, dword [esp + 0x74]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481891
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x12
mov eax, dword [esp + 0x4c]
jmp 0x481c1e
mov dword [esp + 0x48], eax
mov byte [esp + 0xc0], 0x25
mov ebx, 0x69389c
shr ebx, 0x10
mov dword [esp + 0x30], ebx
test ebx, ebx
jne 0x4818e1
mov ecx, 0x69389c
movzx esi, cx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x4818f1
push esi
push eax
lea edx, [esp + 0x50]
push edx
call fcn.0040cec6
jmp 0x4818f1
push 6
push 0x69389c
lea eax, [esp + 0x50]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x26
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4819b9
call fcn.0057a4ca
xor eax, eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [eax + 0x14]
jne 0x48191a
call fcn.0057a4ca
lea eax, [edi + 8]
push eax
lea eax, [esp + 0xa8]
push eax
lea esi, [esp + 0x50]
call fcn.00413865
mov byte [esp + 0xc8], 0x27
lea ecx, [esp + 0x84]
push str.InProcServer32
push ecx
mov ecx, eax
call fcn.0040fcd8
mov byte [esp + 0xd0], 0x28
mov eax, dword [eax]
push 0
mov edx, eax
lea ecx, [esp + 0xa8]
call fcn.00480d30
add esp, 0x14
mov byte [esp + 0xc0], 0x29
mov ecx, dword [eax]
mov esi, dword [esp + 0x2c]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4819d2
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4819c0
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4819c0
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4819ac
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x30]
jmp 0x4819ce
mov eax, dword [eax]
jmp 0x48190c
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x34]
call fcn.0040b3ac
mov edi, dword [esp + 0x1c]
mov byte [esp + 0xc0], 0x28
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4819fd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x27
mov eax, dword [esp + 0x7c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481a25
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x26
mov eax, dword [esp + 0xa4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481a50
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x12
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481a78
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
mov dword [esp + 0x40], eax
mov byte [esp + 0xc0], 0x2e
test ebx, ebx
jne 0x481abe
mov ecx, 0x69389c
movzx esi, cx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x481ace
push esi
push eax
lea edx, [esp + 0x48]
push edx
call fcn.0040cec6
jmp 0x481ace
push 6
push 0x69389c
lea eax, [esp + 0x48]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x2f
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x481b85
call fcn.0057a4ca
xor eax, eax
cmp edi, dword [eax + 0x14]
jne 0x481af3
call fcn.0057a4ca
lea eax, [edi + 8]
push eax
lea eax, [esp + 0x64]
push eax
lea esi, [esp + 0x48]
call fcn.00413865
mov byte [esp + 0xc8], 0x30
lea ecx, [esp + 0x60]
push str.LocalServer32
push ecx
mov ecx, eax
call fcn.0040fcd8
mov byte [esp + 0xd0], 0x31
mov eax, dword [eax]
push 0
mov edx, eax
lea ecx, [esp + 0x68]
call fcn.00480d30
add esp, 0x14
mov byte [esp + 0xc0], 0x32
mov ecx, dword [eax]
mov esi, dword [esp + 0x28]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x481b9a
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x481b8c
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x481b8c
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x481b7c
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x28], ebx
jmp 0x481b9a
mov eax, dword [eax]
jmp 0x481ae9
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x30]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x31
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481bc2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x30
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481bea
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x2f
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481c12
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x12
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481c3a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x2c]
cmp dword [edi - 0xc], 0
je 0x481c51
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
push ecx
push edx
push edi
call dword [ebp + 8]
mov esi, dword [esp + 0x28]
cmp dword [esi - 0xc], 0
je 0x481c68
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
push eax
push ecx
push esi
call dword [ebp + 8]
mov byte [esp + 0xc0], 0x10
lea eax, [esi - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x481c8c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481cb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x481d35
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x481ccd
call fcn.0057a4ca
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 8]
lea ebx, [esi + 8]
push eax
lea edi, [esp + 0x1b]
call fcn.00482460
test al, al
je 0x481fc5
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0xc0], 0x39
mov ecx, str.HKEY_CLASSES_ROOTTypeLib_
test ecx, 0xffff0000
jne 0x481d39
mov edx, ecx
movzx esi, dx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x481d49
push esi
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0040cec6
jmp 0x481d49
mov eax, dword [eax]
jmp 0x481cbf
push 0x1a
push str.HKEY_CLASSES_ROOTTypeLib_
lea eax, [esp + 0x40]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x3a
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x481dcd
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x481d6e
call fcn.0057a4ca
lea edx, [esp + 0x68]
push ebx
push edx
lea esi, [esp + 0x40]
call fcn.00413865
add esp, 8
mov byte [esp + 0xc0], 0x3b
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x481de3
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x481dd1
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x481dd1
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x481dc4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x20], ebx
jmp 0x481ddf
mov eax, dword [edi]
jmp 0x481d60
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x28]
call fcn.0040b3ac
mov edi, dword [esp + 0x18]
mov byte [esp + 0xc0], 0x3a
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481e0b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481e33
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x481e49
push str._x64_
lea ecx, [esp + 0x24]
push ecx
call fcn.00425f4d
test edi, edi
jne 0x481f19
call fcn.0057a4ca
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp edx, dword [eax + 0x14]
jne 0x481e66
call fcn.0057a4ca
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x80]
push eax
lea edi, [ebx + 8]
push edi
call fcn.0047ca40
mov esi, eax
mov byte [esp + 0xc0], 0x3e
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x481f20
call fcn.0057a4ca
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x481ea2
call fcn.0057a4ca
lea edx, [esp + 0x78]
push 0x69314c
lea ecx, [edi + 4]
push edx
call fcn.0040fcd8
mov byte [esp + 0xc8], 0x3f
push esi
lea ecx, [esp + 0x7c]
push ecx
mov esi, eax
call fcn.00413865
add esp, 0x10
mov byte [esp + 0xc0], 0x40
mov ecx, dword [eax]
mov esi, dword [esp + 0x24]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x481f35
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x481f27
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x481f27
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x481f10
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x24], ebx
jmp 0x481f35
mov eax, dword [edi]
jmp 0x481e58
mov eax, dword [eax]
jmp 0x481e98
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x2c]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x3f
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481f5d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x3e
mov eax, dword [esp + 0x78]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481f85
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x80]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x481fb0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
call dword [ebp + 8]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x482042
call fcn.0057a4ca
xor eax, eax
cmp esi, dword [eax + 0x14]
jne 0x481fde
call fcn.0057a4ca
mov eax, dword [esi + 8]
lea ebx, [esi + 8]
push eax
lea edi, [esp + 0x1b]
call fcn.004826c0
test al, al
je 0x4822e8
mov edx, dword [0x6dd118]
mov eax, dword [edx + 0xc]
mov ecx, 0x6dd118
call eax
add eax, 0x10
mov dword [esp + 0x3c], eax
mov byte [esp + 0xc0], 0x44
mov ecx, str.HKEY_CLASSES_ROOTInterface_
test ecx, 0xffff0000
jne 0x482046
mov edx, ecx
movzx esi, dx
push esi
call fcn.00402e8e
add esp, 4
test eax, eax
je 0x482056
push esi
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0040cec6
jmp 0x482056
mov eax, dword [eax]
jmp 0x481fd4
push 0x1c
push str.HKEY_CLASSES_ROOTInterface_
lea eax, [esp + 0x44]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x45
mov edi, dword [esp + 0x18]
test edi, edi
jne 0x4820dd
call fcn.0057a4ca
xor eax, eax
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [eax + 0x14]
jne 0x48207b
call fcn.0057a4ca
lea edx, [esp + 0x88]
push ebx
push edx
lea esi, [esp + 0x44]
call fcn.00413865
add esp, 8
mov byte [esp + 0xc0], 0x46
mov ecx, dword [eax]
mov esi, dword [esp + 0x20]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x4820f3
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x4820e1
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x4820e1
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x4820d4
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x20], ebx
jmp 0x4820ef
mov eax, dword [edi]
jmp 0x48206d
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x28]
call fcn.0040b3ac
mov edi, dword [esp + 0x18]
mov byte [esp + 0xc0], 0x45
mov eax, dword [esp + 0x88]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48211e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482146
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [esp + 0x17], 0
je 0x48215c
push str._x64_
lea ecx, [esp + 0x24]
push ecx
call fcn.00425f4d
test edi, edi
jne 0x482232
call fcn.0057a4ca
xor eax, eax
mov edx, dword [esp + 0x1c]
cmp edx, dword [eax + 0x14]
jne 0x482179
call fcn.0057a4ca
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0xa0]
push eax
lea edi, [ebx + 8]
push edi
call fcn.0047ca40
mov esi, eax
mov byte [esp + 0xc0], 0x49
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x482239
call fcn.0057a4ca
xor eax, eax
cmp ebx, dword [eax + 0x14]
jne 0x4821b5
call fcn.0057a4ca
lea edx, [esp + 0x98]
push 0x69314c
lea ecx, [edi + 4]
push edx
call fcn.0040fcd8
mov byte [esp + 0xc8], 0x4a
push esi
lea ecx, [esp + 0x9c]
push ecx
mov esi, eax
call fcn.00413865
add esp, 0x10
mov byte [esp + 0xc0], 0x4b
mov ecx, dword [eax]
mov esi, dword [esp + 0x24]
lea eax, [ecx - 0x10]
add esi, 0xfffffff0
cmp eax, esi
je 0x48224e
cmp dword [esi + 0xc], 0
lea edi, [esi + 0xc]
jl 0x482240
mov edx, dword [eax]
cmp edx, dword [esi]
jne 0x482240
call fcn.0040b471
mov ebx, eax
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
test eax, eax
jg 0x482229
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
add ebx, 0x10
mov dword [esp + 0x24], ebx
jmp 0x48224e
mov eax, dword [edi]
jmp 0x48216b
mov eax, dword [eax]
jmp 0x4821ab
mov eax, dword [ecx - 0xc]
push eax
push ecx
lea eax, [esp + 0x2c]
call fcn.0040b3ac
mov byte [esp + 0xc0], 0x4a
mov eax, dword [esp + 0x90]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482279
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 0x49
mov eax, dword [esp + 0x98]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4822a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xc0], 3
mov eax, dword [esp + 0xa0]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4822cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
call dword [ebp + 8]
test al, al
je 0x4823b7
mov edi, dword [esp + 0x24]
cmp dword [edi - 0xc], 0
jne 0x48232a
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4823ac
call fcn.0057a4ca
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp esi, dword [eax + 0x14]
jne 0x482313
call fcn.0057a4ca
mov ecx, dword [ebp + 0xc]
push ecx
lea eax, [esi + 8]
mov eax, dword [eax]
push 0
push eax
call dword [ebp + 8]
test al, al
je 0x4823f3
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x482352
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xc0], 0xffffffff
lea eax, [edi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482379
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4823b3
call fcn.0057a4ca
xor eax, eax
mov esi, dword [esp + 0x1c]
cmp esi, dword [eax + 0x14]
jne 0x482396
call fcn.0057a4ca
mov ecx, dword [esi]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0xa8]
jmp 0x4810df
mov eax, dword [eax]
jmp 0x482305
mov eax, dword [eax]
jmp 0x482388
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4823df
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xc0], 0xffffffff
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
jmp 0x482429
mov byte [esp + 0xc0], 1
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48241b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0xc0], 0xffffffff
lea eax, [edi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x482442
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10