Function at 0x433920
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 + 0x4c], eax
mov eax, dword [0x44a88c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], 0xd789c9e5
mov dword [esp + 0x1c], 0xd3add5ad
mov dword [esp + 0x20], 0xdfb3d1ac
mov dword [esp + 0x24], 0xdb96dda9
mov dword [esp + 0x28], 0xe78fd9a6
mov dword [esp + 0x2c], 0xe38fe59e
mov dword [esp + 0x30], 0xefeee1cd
mov eax, 0x396746c7
nop
nop
nop
nop
mov dword [esp], eax
movzx edx, byte [esp + eax - 0x396746af]
mov dword [esp + 4], edx
lea ecx, [eax - 0x39674679]
and ecx, edx
mov ebx, ecx
and ebx, 0x7d
mov eax, ecx
or eax, 0xfffffffd
lea esi, [eax + 1]
imul esi, ebx
inc al
mul bl
mov edi, ecx
and edi, 2
mov edx, dword [esp]
mov ebx, edx
mov edx, dword [esp + 4]
add bl, dl
and bl, 1
add bl, dl
add bl, al
mov edx, ecx
or edx, 2
imul edi, edx
shr cl, 1
and cl, 1
mov eax, ecx
mul dl
mov ecx, esi
sub ecx, edi
mov edx, dword [esp + 4]
add edx, dword [esp]
add ecx, edx
xor cl, 1
add cl, bl
add al, al
sub cl, al
add edx, esi
sub edx, edi
and dl, 0xfe
sub cl, dl
movzx eax, cl
add eax, dword [esp]
mov ecx, dword [esp]
mov byte [esp + ecx - 0x396746af], al
mov eax, dword [esp]
inc eax
cmp eax, 0x396746e3
jne 0x433980
lea eax, [esp + 0x5c]
lea ebx, [esp + 0x84]
lea edi, [esp + 0x18]
push eax
push 8
push ebx
push 0xd
push edi
push 0
call dword [esp + 0x24]
test eax, eax
jns 0x433a3c
mov dword [esp + 0x84], 0x3a0043
mov dword [esp + 0x88], 0x5c
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x14], 0
lea eax, [esp + 0x14]
push eax
push 0x440670
push 1
push 0
push 0x440680
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x433fa1
mov dword [esp + 0x18], 0x194b1b42
mov dword [esp + 0x1c], 0x653a6749
mov dword [esp + 0x20], 0x612f63c0
mov dword [esp + 0x24], 0x6d3d6f37
mov dword [esp + 0x28], 0x69146b36
mov dword [esp + 0x2c], 0x7768
mov byte [esp + 0x30], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea ecx, [eax + 0x3b]
mov edx, 0xf1314c4
sub edx, eax
mov esi, edx
xor esi, 0xc7
or edx, 0x38
and edx, esi
and ecx, 0x47
xor ecx, edx
xor cl, byte [esp + eax + 0x18]
xor cl, 0x38
add cl, 0xd9
mov byte [esp + eax + 0x18], cl
mov ecx, 1
sub ecx, eax
add eax, 0x1fe
and ecx, 0x1fd
and eax, 0x202
sub eax, ecx
cmp eax, 0x19
jb 0x433ad0
push edi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
lea edx, [esp + 0x10]
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 0x433f90
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x2c]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x433f86
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], 0x7f0f7903
mov dword [esp + 0x1c], 0x63627d30
mov eax, 0xa9986e95
mov ecx, edi
movzx esi, byte [ecx]
lea edx, [esi + esi]
not edx
add edx, esi
not esi
and esi, edx
or esi, eax
lea edi, [esi + esi]
not edi
add edi, esi
and edx, eax
or edx, edi
mov esi, 0x4ffa28ec
sub esi, edx
mov edx, esi
xor edx, 0x7e
mov edi, esi
or edi, 1
and edi, edx
xor esi, 1
lea edx, [esi + edi*2]
mov byte [ecx], dl
inc ecx
dec eax
cmp eax, 0xa9986e8d
jne 0x433b80
lea esi, [esp + 0x18]
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp], eax
mov dword [esp + 0x18], 0x51094f19
mov dword [esp + 0x1c], 0x5515531c
mov dword [esp + 0x20], 0x59025711
mov dword [esp + 0x24], 0x5d305b38
mov dword [esp + 0x28], 0xa1185f3c
mov dword [esp + 0x2c], 0xa5f3a3f2
mov dword [esp + 0x30], 0xa9c6a7eb
mov dword [esp + 0x34], 0xad01abf1
mov dword [esp + 0x38], 0xb1dbaf02
mov dword [esp + 0x3c], 0xb513b3c2
mov dword [esp + 0x40], 0xb9fdb7f6
mov dword [esp + 0x44], 0xbdefbbe9
mov dword [esp + 0x48], 0xbfbc
mov eax, 0x2d
mov ecx, 0x12
nop
mov edi, ecx
and edi, 0xc9
mov edx, eax
and edx, 0x36
or edx, edi
xor dl, byte [esp + eax - 0x15]
xor dl, 0xc9
add dl, 0x5f
mov byte [esp + eax - 0x15], dl
inc eax
dec ecx
cmp eax, 0x61
jne 0x433c40
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
push 0
push 0x30
push edi
push dword [esp + 0x10]
push eax
call dword [ecx + 0x50]
test eax, eax
js 0x433f70
mov dword [esp + 0x6c], edi
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
lea edx, [esp + 0x50]
lea edi, [esp + 0x54]
push edx
push edi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x433f62
cmp eax, 1
je 0x433f62
cmp dword [esp + 0x50], 0
je 0x433f62
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], 0xb1e98ff9
mov dword [esp + 0x1c], 0xb5d9b322
mov dword [esp + 0x20], 0xb9dab7d7
mov dword [esp + 0x24], 0xbd2dbbf6
mov dword [esp + 0x28], 0xa1dcbfd3
mov dword [esp + 0x2c], 0xa530a3c7
mov word [esp + 0x30], 0xa7a4
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x9d
xor dl, byte [esp + ecx + 0x18]
add dl, 0xef
mov byte [esp + ecx + 0x18], dl
inc ecx
cmp ecx, 0x20
jne 0x433d30
mov ecx, dword [eax]
push 0
push 0
lea edx, [esp + 0x78]
push edx
push 0
push esi
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x433f4d
cmp word [esp + 0x70], 8
jne 0x433f4d
mov esi, dword [esp + 0x78]
movzx ebx, word [esi]
test bx, bx
je 0x433dbd
lea eax, [esi + 2]
xor edi, edi
mov ecx, ebx
jmp 0x433d9c
inc edi
movzx ecx, word [eax]
add eax, 2
test cx, cx
je 0x433dbf
cmp cx, 0x7f
jbe 0x433d90
movzx edx, cx
cmp edx, 0x7ff
ja 0x433db2
add edi, 2
jmp 0x433d91
cmp cx, 0xffff
je 0x433d91
add edi, 3
jmp 0x433d91
xor edi, edi
lea eax, [edi + 1]
push eax
call fcn.00408210
add esp, 4
mov dword [esp + 8], eax
test edi, edi
je 0x433f00
mov eax, dword [esp + 8]
test bx, bx
je 0x433f00
mov ecx, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
nop
nop
movzx edx, bx
lea ebx, [esi + 2]
cmp dx, 0x7f
ja 0x433e10
lea edi, [eax + 1]
mov byte [eax], dl
jmp 0x433ea0
cmp edx, 0x7ff
ja 0x433e39
cmp ecx, 2
jb 0x433e39
mov esi, ebx
mov ebx, edx
shr ebx, 6
add bl, 0xc0
mov byte [eax], bl
mov ebx, esi
and dl, 0x3f
or dl, 0x80
lea edi, [eax + 2]
mov byte [eax + 1], dl
jmp 0x433ea0
mov edi, edx
and edi, 0xfc00
cmp edi, 0xd800
jne 0x433ebe
cmp ecx, 4
jb 0x433ebe
movzx edi, word [esi + 2]
add esi, 4
shl edx, 0xa
lea ebx, [edx + edi]
add ebx, 0xfca02400
mov edx, ebx
shr edx, 0x12
add dl, 0xf0
mov byte [eax], dl
mov edx, ebx
shr edx, 0xc
and dl, 0x3f
or dl, 0x80
mov byte [eax + 1], dl
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 2], bl
mov edx, edi
and dl, 0x3f
or dl, 0x80
lea edi, [eax + 4]
mov byte [eax + 3], dl
mov ebx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ecx, eax
sub ecx, edi
mov esi, ebx
mov eax, edi
mov edi, dword [esp + 4]
movzx ebx, word [esi]
test bx, bx
je 0x433f00
test ecx, ecx
jne 0x433df0
jmp 0x433f00
movzx esi, di
cmp esi, 0xdc00
jne 0x433ecd
mov esi, ebx
jmp 0x433ea8
cmp ecx, 3
jb 0x433efc
mov esi, ebx
mov ebx, edx
shr ebx, 0xc
or bl, 0xe0
mov byte [eax], bl
mov ebx, edx
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
mov ebx, esi
and dl, 0x3f
or dl, 0x80
lea edi, [eax + 3]
mov byte [eax + 2], dl
jmp 0x433ea0
mov edi, eax
jmp 0x433ea0
mov byte [eax], 0
mov eax, 3
sub eax, edi
cmp eax, 0xfffffffd
jae 0x433f14
mov eax, 0xfffffffc
add eax, edi
shr eax, 2
cmp eax, 3
lea ebx, [esp + 0x84]
lea ecx, [esp + 0x5c]
jb 0x433f2e
mov eax, 3
lea eax, [eax*4 + 4]
push eax
mov esi, dword [esp + 0xc]
push esi
push ecx
call fcn.00408240
add esp, 0xc
push esi
call fcn.00408220
add esp, 4
lea eax, [esp + 0x70]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x58]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edi, dword [esp + 0x6c]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esp]
call esi
push edi
call esi
lea edi, [esp + 0x18]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x18], 0
push 0x72a7c387
push dword [0x44a884]
call fcn.0043c420
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 0x434084
mov eax, dword [esp + 0x18]
mov dword [esp + 0x5c], eax
xor esi, esi
jmp 0x433fef
add dword [esp + 0x4c], 8
inc esi
cmp esi, 4
je 0x434084
mov eax, 0
test esi, esi
je 0x434002
cmp dword [esp + esi*4 + 0x5c], 1
mov eax, esi
sbb eax, 0
mov eax, dword [esp + eax*4 + 0x5c]
mov ecx, eax
or ecx, 0x1a5845
mov edx, eax
and edx, 0x1a5845
imul ecx, edx
and eax, 0xffe5a7ba
xor edx, 0x1a5845
imul edx, eax
lea eax, [ecx + edx]
add eax, 0xebde8a13
mov dword [esp + esi*4 + 0x5c], eax
mov ebx, 0xffffffff
mov edi, 0xfffffffe
push 0x10
push 9
push dword [esp + 0x54]
push eax
call fcn.0041a720
add esp, 0x10
nop
nop
add edi, 2
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x434050
xor ebx, 8
not edi
and edi, 0x10
mov ecx, edi
sub ecx, ebx
je 0x433fe0
sub ebx, edi
add eax, ebx
push ecx
push 0x30
push eax
call fcn.00408290
add esp, 0xc
jmp 0x433fe0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret