Function at 0x43a9c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb0
mov eax, dword [0x450700]
mov dword [esp + 0x20], 0x338131ed
mov dword [esp + 0x24], 0x2fbd2da5
mov dword [esp + 0x28], 0x2bb729a4
mov dword [esp + 0x2c], 0x279a25b1
mov dword [esp + 0x30], 0x23bb21b2
mov dword [esp + 0x34], 0x1f831d92
mov dword [esp + 0x38], 0x1b1a19c5
mov dword [esp + 0x58], 0
mov ecx, dword [esp + 0x58]
cmp ecx, 0x1b
ja 0x43aa83
nop
nop
nop
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x58]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
xor esi, 0xc1f5944c
and ecx, 0xc1f5944c
lea esi, [esi + ecx*2]
lea ecx, [esi + edx]
mov edi, edx
not edi
or edi, esi
lea esi, [edx + edi]
add edx, edi
inc edx
mov edi, ecx
not edi
and edi, edx
not edx
and edx, ecx
lea ecx, [edi + esi]
inc ecx
sub edx, ecx
mov dword [esp + 0x9c], edx
mov ecx, dword [esp + 0x9c]
add cl, 0x84
mov edx, dword [esp + 0x58]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
cmp ecx, 0x1c
jb 0x43aa20
lea ecx, [esp + 0x58]
lea edi, [esp + 0x9c]
lea ebx, [esp + 0x20]
push ecx
push 8
push edi
push 0xd
push ebx
push 0
call eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dd2c]
mov dword [esp + 0x9c], 0x3a0043
jmp dword [0x44dd3c]
mov dword [esp + 0xa0], 0x5c
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x74], 0
lea eax, [esp + 0x74]
push eax
push 0x4480f0
push 1
push 0
push 0x448100
call dword [sym.imp.ole32.dll_CoCreateInstance]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dd44]
mov dword [esp + 0x20], 0x33853182
mov dword [esp + 0x24], 0x2f822d9b
mov dword [esp + 0x28], 0x2b69298c
mov dword [esp + 0x2c], 0x2793259d
mov dword [esp + 0x30], 0x2370218e
mov word [esp + 0x34], 0x1d1c
mov dword [esp + 0x36], 0
mov word [esp + 0x3a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x1b
ja 0x43abc5
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0x1418ec0c
and eax, 0x1418ec0c
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
add al, 0xc4
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x1c
jb 0x43ab70
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
lea edx, [esp + 0x70]
push edx
push 0
push 0
push 0
push 0
push 0
push 0
push esi
push eax
call dword [ecx + 0xc]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dd4c]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [esp + 0x8c]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dd54]
mov dword [esp + 0x20], 0x1fcf19c3
mov dword [esp + 0x24], 0xe3e21dd0
mov word [esp + 0x28], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 9
ja 0x43ac9f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx eax, byte [esp + eax + 0x20]
mov edx, ecx
xor edx, 0x26a119fa
and ecx, 0x26a119fa
lea ecx, [edx + ecx*2]
lea edx, [ecx + eax]
not eax
or ecx, eax
sub eax, ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
add al, 0x1e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xa
jb 0x43ac50
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], 0x7f3b790f
mov dword [esp + 0x24], 0x63277d30
mov dword [esp + 0x28], 0x67126127
mov dword [esp + 0x2c], 0x6b446544
mov dword [esp + 0x30], 0x6f246948
mov dword [esp + 0x34], 0x93e16d1a
mov dword [esp + 0x38], 0x97b691dd
mov dword [esp + 0x3c], 0x9bf395ef
mov dword [esp + 0x40], 0x9fc9990a
mov dword [esp + 0x44], 0x83e19dca
mov dword [esp + 0x48], 0x87cf81c6
mov dword [esp + 0x4c], 0x8bfd85f7
mov word [esp + 0x50], 0x8988
mov dword [esp + 0x52], 0
mov byte [esp + 0x56], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x36
ja 0x43ad85
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x20]
mov edx, eax
xor edx, 0xdaf0e6ea
and eax, 0xdaf0e6ea
lea eax, [edx + eax*2]
lea edx, [eax + ecx]
and eax, ecx
mov ecx, edx
not ecx
and ecx, eax
add ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x80]
add al, 0x6e
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x20], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x37
jb 0x43ad30
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, eax
mov dword [esp + 0x98], esi
mov eax, dword [esp + 0x70]
mov esi, dword [eax]
lea edx, [esp + 0x6c]
push edx
push 0
push 0x30
mov dword [esp + 0xa0], ecx
push ecx
push dword [esp + 0x24]
push eax
call dword [esi + 0x50]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44dd5c]
jmp dword [0x44dd64]
jmp dword [0x44dd80]
jmp dword [0x44ddc4]
push dword [esp + 0x10]
call fcn.0040c9a0
add esp, 4
push edi
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea edi, [esp + 0x9c]
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push dword [esp + 0x14]
call esi
push dword [esp + 0x94]
call esi
mov esi, dword [esp + 0x98]
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esp + 0x74]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [esp + 0x20], 0
push 0xefddb36b
push dword [0x4506f8]
call fcn.00443d90
add esp, 8
push 0
push 0
push 0
push 0
push ebx
push 0
push 0
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44ddcc]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [ebp + 8]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x58], eax
mov eax, dword [case.0x43adb9.32]
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor edi, edi
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x44dde4]
mov edx, dword [esp + 0x14]
add edx, 8
inc edi
xor eax, eax
cmp edi, 4
setb al
jmp dword [eax*4 + 0x44dde4]
xor ecx, ecx
test edi, edi
setne cl
mov eax, edi
jmp dword [ecx*4 + 0x44ddfc]
xor ecx, ecx
cmp dword [esp + edi*4 + 0x58], 0
sete cl
mov eax, edi
jmp dword [ecx*4 + 0x44de04]
lea eax, [edi - 1]
imul eax, dword [esp + eax*4 + 0x58], 0x1a5845
add eax, 0xebde8a13
mov dword [esp + edi*4 + 0x58], eax
mov ebx, 0xfffffff7
push 0x10
push 9
mov dword [esp + 0x1c], edx
push edx
push eax
call fcn.00419c30
add esp, 0x10
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
inc ebx
cmp byte [eax + ecx + 9], 0
jne case.default.0x43af33
dec eax
xor edx, edx
cmp ecx, 0xffffffff
setne dl
jmp dword [edx*4 + 0x44de1c]
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov esi, eax
mov eax, edx
mov ecx, ebx
jmp dword [esi*4 + 0x44de1c]
jmp dword [0x44de24]
mov byte [eax], 0x30
lea edx, [eax - 1]
lea ebx, [ecx + 1]
jmp dword [0x44de2c]
mov byte [eax], 0x30
mov byte [eax], 0x30
lea edx, [eax - 1]
lea ebx, [ecx + 1]
jmp dword [0x44de2c]
mov eax, dword [case.0x43b19c.0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
lea esi, [esp + 0x1c]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax]
lea edx, [esp + 0x18]
lea esi, [esp + 0x1c]
push edx
push esi
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
jmp dword [0x44dd6c]
test eax, eax
setns cl
cmp eax, 1
setne al
cmp dword [esp + 0x18], 0
setne dl
and dl, al
and dl, cl
movzx eax, dl
jmp dword [eax*4 + 0x44dd74]
test eax, eax
setns al
cmp word [esp + 0x80], 8
sete cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44dd8c]
push dword [esp + 0x88]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x68], eax
lea eax, [edx + eax*2]
mov dword [esp + 0x7c], eax
movzx ecx, word [edx]
test cx, cx
mov dword [esp + 0xc], edx
je 0x43b081
xor esi, esi
mov eax, edx
jmp 0x43b059
add esi, edx
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
lea ebx, [esp + 0x20]
je 0x43b083
cmp eax, dword [esp + 0x7c]
jae 0x43b083
movzx ebx, cx
cmp ebx, 0x800
mov ecx, 3
sbb ecx, 0
mov edx, 1
cmp ebx, 0x80
jb 0x43b047
mov edx, ecx
jmp 0x43b047
xor esi, esi
lea eax, [esi + 1]
mov dword [esp + 0x78], eax
push eax
call fcn.0040c990
add esp, 4
mov dword [esp + 0x10], eax
test esi, esi
mov ecx, dword [esp + 0xc]
jle 0x43b189
mov eax, dword [esp + 0x10]
cmp dword [esp + 0x68], 0
jle 0x43b189
mov eax, dword [esp + 0x10]
lea edx, [eax + esi]
mov dword [esp + 0x68], edx
add dword [esp + 0x78], eax
add ecx, 2
movzx edx, word [ecx - 2]
test dx, dx
je 0x43b189
cmp dx, 0x7f
ja 0x43b0e3
mov byte [eax], dl
mov ebx, 1
jmp 0x43b168
mov dword [esp + 0xc], ecx
mov ecx, eax
not ecx
add ecx, dword [esp + 0x78]
movzx ebx, dx
cmp ecx, 2
jb 0x43b127
cmp ebx, 0x7ff
ja 0x43b127
mov ecx, edx
shr ecx, 6
add cl, 0xc0
mov byte [eax], cl
mov ecx, edx
xor ecx, 0xc0
or edx, 0x3f
and edx, ecx
add dl, 0x80
mov byte [eax + 1], dl
mov ebx, 2
mov ecx, dword [esp + 0xc]
jmp 0x43b168
mov dword [esp + 0x90], ebx
xor ebx, ebx
cmp ecx, 3
mov ecx, dword [esp + 0xc]
jb 0x43b168
mov ebx, dword [esp + 0x90]
mov ecx, ebx
shr ecx, 0xc
or cl, 0xe0
mov byte [eax], cl
mov ecx, dword [esp + 0xc]
shr ebx, 6
and bl, 0x3f
or bl, 0x80
mov byte [eax + 1], bl
and dl, 0x3f
or dl, 0x80
mov byte [eax + 2], dl
mov ebx, 3
add eax, ebx
cmp eax, dword [esp + 0x68]
jae 0x43b185
mov edx, ecx
add ecx, 2
cmp edx, dword [esp + 0x7c]
lea ebx, [esp + 0x20]
jb 0x43b0c4
jmp 0x43b189
lea ebx, [esp + 0x20]
mov byte [eax], 0
xor ecx, ecx
mov edx, dword [case.0x43adb9.24]
xor eax, eax
cmp ecx, 4
setb al
jmp dword [eax*4 + 0x44dd94]
mov eax, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov dword [esp + ecx*4 + 0x58], eax
add esi, 0xfffffffc
xor eax, eax
cmp esi, 4
setb al
jmp dword [eax*4 + 0x44dd9c]
jmp edx
inc ecx
xor eax, eax
cmp ecx, 4
setb al
jmp dword [eax*4 + 0x44dd94]
lea esi, [esp + 0x80]
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 0xc169c779
mov dword [esp + 0x24], 0xcd69c352
mov dword [esp + 0x28], 0xc95acf6f
mov dword [esp + 0x2c], 0xb555cb7e
mov dword [esp + 0x30], 0xb114b723
mov dword [esp + 0x34], 0xbd20b31f
mov word [esp + 0x38], 0xbfbc
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x1f
ja 0x43b2a5
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
mov edi, ecx
xor edi, 0xd1b86c31
and ecx, 0xd1b86c31
lea edi, [edi + ecx*2]
mov ecx, edi
and ecx, edx
xor edi, edx
sub edi, ecx
lea edx, [edi + ecx*2]
mov edi, edx
not edi
and edi, ecx
not ecx
and ecx, edx
sub ecx, edi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0xb
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x20
jb 0x43b250
mov ecx, dword [eax]
push 0
push 0
push esi
push 0
push ebx
push eax
call dword [ecx + 0x10]
lea edi, [esp + 0x80]
push edi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x20], 0xc169c779
mov dword [esp + 0x24], 0xcd69c352
mov dword [esp + 0x28], 0xc95acf6f
mov dword [esp + 0x2c], 0xb555cb7e
mov dword [esp + 0x30], 0xb114b723
mov dword [esp + 0x34], 0xbd20b31f
mov word [esp + 0x38], 0xbfbc
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0x1f
ja 0x43b375
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x20]
mov esi, ecx
xor esi, 0xd1b86c31
and ecx, 0xd1b86c31
lea esi, [esi + ecx*2]
mov ecx, esi
and ecx, edx
xor esi, edx
sub esi, ecx
lea edx, [esi + ecx*2]
mov esi, edx
not esi
and esi, ecx
not ecx
and ecx, edx
sub ecx, esi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 4]
add cl, 0xb
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x20], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0x20
jb 0x43b320
mov ecx, dword [eax]
push 0
push 0
push edi
push 0
push ebx
push eax
call dword [ecx + 0x10]
jmp dword [0x44dd88]
push eax
push eax
mov ebx, esp
jmp ecx
scasb al, byte es:[edi]
inc ebx
add al, al
lodsd eax, dword [esi]
inc ebx
add byte [edx - 0x6dffbc51], dh
scasd eax, dword es:[edi]
inc ebx
add al, bl
scasd eax, dword es:[edi]
inc ebx
add byte [edx - 0x9ffbc51], dl
lodsd eax, dword [esi]
inc ebx
add dh, al
lodsd eax, dword [esi]
inc ebx
add dl, ah
mov cl, 0x43
add byte [ebx - 0x1dffbc4e], dh
mov cl, 0x43
add cl, bh
scasd eax, dword es:[edi]
inc ebx
add dh, bl
lodsd eax, dword [esi]
inc ebx
add byte [esi], dl
mov al, 0x43
add ah, cl
lodsd eax, dword [esi]
inc ebx
add byte [eax - 0x2fffbc4f], dh
mov cl, 0x43
add byte [edx - 0x6fffbc51], al
scasd eax, dword es:[edi]
inc ebx
add byte [eax - 0x6fffbc51], dl
scasd eax, dword es:[edi]
inc ebx
add ah, cl
lodsd eax, dword [esi]
inc ebx
add al, dl
mov cl, 0x43
add al, dl
mov cl, 0x43
add dl, dl
mov cl, 0x43
add al, dl
mov cl, 0x43
add dl, dl
lodsd eax, dword [esi]
inc ebx
add dh, bl
lodsd eax, dword [esi]
inc ebx
add byte [eax - 0x52], dh
inc ebx
add byte [eax - 0x52], bh
inc ebx
add byte [eax - 0x6fffbc52], dl
scasb al, byte es:[edi]
inc ebx
add byte [edx - 0x6fffbc52], dl
scasb al, byte es:[edi]
inc ebx
add byte [eax - 0x52], dh
inc ebx
add bh, al
scasb al, byte es:[edi]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add bh, al
scasb al, byte es:[edi]
inc ebx
add byte [ecx], al
add byte [eax], al
add ch, ch
scasb al, byte es:[edi]
inc ebx
add bh, dl
scasb al, byte es:[edi]
inc ebx
add ch, ch
scasb al, byte es:[edi]
inc ebx
add dl, ch
scasb al, byte es:[edi]
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [eax - 0x51], al
inc ebx
add byte [eax + 0x550043ae], dh
scasd eax, dword es:[edi]
inc ebx
add byte [ebx - 0x51], bl
inc ebx
add byte [eax - 0x51], dh
inc ebx
add byte [eax - 0x51], al
inc ebx
add byte [eax - 0x51], dh
inc ebx
add byte [eax - 0x4fffbc4d], dh
mov bl, 0x43
add byte [esi - 0x4fffbc4d], dh
mov bl, 0x43
add ch, bl
mov bl, 0x43
add ah, ah
mov bl, 0x43
add byte [ecx - 0x4b], dh
inc ebx
add byte [ebp + esi*4 + 0x43], ah
add byte [ebp + esi*4 + 0x43], ah
add byte [ebp + esi*4 - 0x4b55ffbd], al
inc ebx
add byte [esi + esi*4], bh
inc ebx
add byte [edx + 0xc0043b4], ch
mov ah, 0x43
add al, dh
mov bl, 0x43
add byte [edi + 0x7f0043b4], al
lds eax, [ebx]
ffree st(3)
inc ebx
add byte [edi + 0x7f0043bf], dh
lds eax, [ebx]
in al, dx
rol dword [ebx], 0xbe
lds eax, [ebx]
arpl sp, ax
inc ebx
add byte [ecx + eax*8 - 0x4006ffbd], bl
inc ebx
add byte [edi], al
les eax, [ebx]
pop edi
mov esi, 0xc3ba0043
inc ebx
add byte [edi - 0x42], bl
inc ebx
add byte [edi - 0x3a], al
inc ebx
add byte [0x210043bf], bh
lds eax, [ebx]
cmp eax, 0x920043bf
ret