Function at 0x4347a0
Capabilities:
Authenticate hmac
Connect to wmi namespace via wbemlocator
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x98
mov eax, dword [ebp + 8]
mov dword [esp + 0x58], eax
mov eax, dword [0x44a7f0]
mov dword [esp], 0x4ff9492d
mov dword [esp + 4], 0x43d54dc5
mov dword [esp + 8], 0x47e341d4
mov dword [esp + 0xc], 0xbbfe45d9
mov dword [esp + 0x10], 0xbf27b92e
mov dword [esp + 0x14], 0xb317bd36
mov dword [esp + 0x18], 0xb7b6b1d5
mov dword [esp + 0x1c], 0
xor ecx, ecx
nop
nop
nop
nop
mov edx, ecx
xor edx, 0x8d
mov esi, ecx
or esi, 0x72
and edx, esi
add edx, esi
xor dl, byte [esp + ecx]
add dl, 0xc6
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
cmp ecx, 0x20
jb 0x434800
lea ecx, [esp + 0x44]
lea ebx, [esp + 0x84]
mov edi, esp
push ecx
push 8
push ebx
push 0xd
push edi
push 0
call eax
test eax, eax
jns 0x434851
mov dword [esp + 0x84], 0x3a0043
mov dword [esp + 0x88], 0x5c
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push 0x440670
push 1
push 0
push 0x440680
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x434cfe
mov dword [esp], 0xb7458976
mov dword [esp + 4], 0xb34eb547
mov dword [esp + 8], 0xbf71b154
mov dword [esp + 0xc], 0xbb4fbd75
mov dword [esp + 0x10], 0xa778b942
mov dword [esp + 0x14], 0xa5a4
xor ecx, ecx
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
mov esi, 0x21
sub esi, ecx
mov edi, edx
not edi
or edi, esi
mov esi, 0x66cb4621
sub esi, ecx
or esi, edx
add edx, edi
inc edx
not esi
or esi, edx
add esi, 0x1f85ea9
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + ecx], dl
mov edx, ecx
and edx, 0x1e
xor eax, 1
add eax, ecx
sub eax, edx
and ecx, 1
add eax, ecx
mov ecx, eax
cmp eax, 0x18
jb 0x4348e0
mov edi, esp
push edi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x3c]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
push eax
call dword [ecx + 0xc]
test eax, eax
js 0x434ced
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x58]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x434ce3
mov dword [esp], 0x155075d
mov dword [esp + 4], 0xd020354
mov word [esp + 8], 0
mov byte [esp + 0xa], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
mov edi, eax
and edi, 2
mov ebx, ecx
xor ebx, edi
and edi, ecx
xor ebx, 0xa1bfd601
lea ebx, [ebx + edi*2]
xor edx, 0xb3abeb38
xor ebx, 0xb3abeb38
mov edi, edx
and edi, ebx
add ebx, edx
add edi, edi
sub ebx, edi
add bl, 0xfb
mov byte [esp + ecx], bl
inc ecx
add eax, 2
cmp ecx, 0xb
jne 0x4349a0
mov eax, esp
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x54], eax
mov dword [esp], 0x73bf71a3
mov dword [esp + 4], 0x7fb37da8
mov dword [esp + 8], 0x7ba679bb
mov dword [esp + 0xc], 0x47ac45a4
mov dword [esp + 0x10], 0x438c41a0
mov dword [esp + 0x14], 0x4f994d9e
mov dword [esp + 0x18], 0x4baa499d
mov dword [esp + 0x1c], 0x57ff558b
mov dword [esp + 0x20], 0x53a151e6
mov dword [esp + 0x24], 0x5ff95dae
mov dword [esp + 0x28], 0x5b93599a
mov dword [esp + 0x2c], 0x27f525f3
mov word [esp + 0x30], 0x2120
mov dword [esp + 0x32], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
movzx edx, byte [esp + ecx]
mov edi, ecx
xor edi, 0x36c723ec
mov ebx, eax
and ebx, 0x26
sub ebx, edi
xor ebx, edx
mov edx, ebx
and edx, 0x1b
xor ebx, 0x9b
lea edx, [ebx + edx*2]
inc dl
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 0x36
jne 0x434a60
mov eax, esp
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, dword [esp + 0x3c]
mov ecx, dword [edi]
lea edx, [esp + 0x64]
push edx
push 0
push 0x30
mov dword [esp + 0x78], eax
push eax
push dword [esp + 0x64]
push edi
call dword [ecx + 0x50]
test eax, eax
lea ebx, [esp + 0x84]
js 0x434ccf
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
lea edx, [esp + 0x5c]
lea edi, [esp + 0x60]
push edx
push edi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x434cc5
cmp eax, 1
je 0x434cc5
cmp dword [esp + 0x5c], 0
je 0x434cc5
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x38], eax
mov dword [esp], 0x1690759
mov dword [esp + 4], 0xd690372
mov dword [esp + 8], 0x97a0f6f
mov dword [esp + 0xc], 0x15750b5e
mov dword [esp + 0x10], 0x11741763
mov dword [esp + 0x14], 0x1d60137f
mov word [esp + 0x18], 0x1f1c
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov ecx, 0x7262bd01
nop
nop
movzx ebx, byte [esp + ecx - 0x7262bd01]
xor ebx, ecx
lea edi, [ebx + 0x7a]
mov edx, 5
sub edx, ebx
or edx, 1
add edx, ebx
mov eax, 0x3bedb105
sub eax, ebx
mov ebx, eax
not ebx
and eax, 0x9e
and edi, 0x61
or edi, eax
xor edi, 0x9f
and ebx, 1
or ebx, edi
add ebx, edx
add bl, 0xfb
mov byte [esp + ecx - 0x7262bd01], bl
inc ecx
cmp ecx, 0x7262bd21
jne 0x434b60
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
push 0
push 0
lea edi, [esp + 0x78]
push edi
push 0
lea ecx, [esp + 0x10]
push ecx
push edx
call dword [eax + 0x10]
test eax, eax
js 0x434cad
cmp word [esp + 0x70], 8
jne 0x434cad
mov eax, dword [esp + 0x78]
movzx ecx, word [eax]
test cx, cx
mov dword [esp + 0x38], eax
je 0x434c2d
add eax, 2
xor ebx, ebx
jmp 0x434c0c
inc ebx
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x434c2f
cmp cx, 0x7f
jbe 0x434c00
movzx edx, cx
cmp edx, 0x7ff
ja 0x434c22
add ebx, 2
jmp 0x434c01
cmp cx, 0xffff
je 0x434c01
add ebx, 3
jmp 0x434c01
xor ebx, ebx
lea eax, [ebx + 1]
mov dword [esp + 0x68], eax
push eax
call fcn.00408230
add esp, 4
mov edi, eax
push dword [esp + 0x38]
push dword [esp + 0x6c]
push eax
call fcn.00420950
add esp, 0xc
mov eax, dword [edi]
mov dword [esp + 0x44], eax
mov eax, ebx
xor eax, 4
and ebx, 0xfffffffb
add ebx, ebx
sub ebx, eax
cmp ebx, 4
jb 0x434ca0
mov eax, dword [edi + 4]
mov dword [esp + 0x48], eax
mov eax, ebx
xor eax, 4
and ebx, 0xfffffffb
add ebx, ebx
sub ebx, eax
cmp ebx, 4
jb 0x434ca0
mov eax, dword [edi + 8]
mov dword [esp + 0x4c], eax
mov eax, ebx
xor eax, 4
and ebx, 0xfffffffb
add ebx, ebx
sub ebx, eax
cmp ebx, 4
jb 0x434ca0
mov eax, dword [edi + 0xc]
mov dword [esp + 0x50], eax
push edi
call fcn.00408240
add esp, 4
lea edi, [esp + 0x70]
push edi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x60]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ebx, [esp + 0x84]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esp + 0x54]
call edi
push dword [esp + 0x6c]
call edi
mov edi, esp
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp], 0
push 0x72a7c387
push dword [0x44a7e8]
call fcn.0043cf80
add esp, 8
push 0
push 0
push 0
push 0
push edi
push 0
push 0
push ebx
call eax
test eax, eax
je 0x434de4
mov eax, dword [esp]
mov dword [esp + 0x44], eax
xor esi, esi
jmp 0x434d4f
inc esi
add dword [esp + 0x58], 8
cmp esi, 4
je 0x434de4
mov eax, 0
test esi, esi
je 0x434d62
cmp dword [esp + esi*4 + 0x44], 1
mov eax, esi
sbb eax, 0
mov eax, dword [esp + eax*4 + 0x44]
mov ecx, eax
and ecx, 0xffe5a7ba
mov edx, eax
and edx, 0x1a5845
or eax, 0x1a5845
imul eax, edx
xor edx, 0x1a5845
imul edx, ecx
add eax, edx
add eax, 0xebde8a13
mov dword [esp + esi*4 + 0x44], eax
mov edi, 0xffffffff
mov ebx, 0xfffffffe
push 0x10
push 9
push dword [esp + 0x60]
push eax
call fcn.004198c0
add esp, 0x10
nop
nop
nop
add ebx, 2
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x434db0
xor edi, 8
not ebx
and ebx, 0x10
mov ecx, ebx
sub ecx, edi
je 0x434d40
sub edi, ebx
add eax, edi
push ecx
push 0x30
push eax
call fcn.004082b0
add esp, 0xc
jmp 0x434d40
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret