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

Disassembly:
sub esp, 0xe0
push ebx
push ebp
mov ebp, dword [esp + 0xec]
lea eax, [esp + 0xc8]
push esi
push edi
mov edi, dword [esp + 0xf8]
push eax
push edi
push ebp
call fcn.0045c850
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.0045c460
movzx ecx, byte [esp + 0x27]
shl ecx, 8
movzx eax, byte [esp + 0x26]
or ecx, eax
movzx eax, byte [esp + 0x25]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2a]
mov dword [esp + 0x84], ecx
movzx ecx, byte [esp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x29]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2e]
mov dword [esp + 0x88], ecx
movzx ecx, byte [esp + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2c]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x32]
mov dword [esp + 0x8c], ecx
movzx ecx, byte [esp + 0x33]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x31]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x30]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x36]
mov dword [esp + 0x90], ecx
movzx ecx, byte [esp + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x35]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3a]
mov dword [esp + 0x94], ecx
movzx ecx, byte [esp + 0x3b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x39]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x38]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3e]
mov dword [esp + 0x98], ecx
movzx ecx, byte [esp + 0x3f]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x42]
mov dword [esp + 0x9c], ecx
movzx ecx, byte [esp + 0x43]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x41]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x40]
shl ecx, 8
or ecx, eax
lea eax, [esp + 0x44]
push eax
push ebp
mov dword [esp + 0xa8], ecx
call fcn.0045c3d0
lea eax, [esp + 0x6c]
push eax
push edi
call fcn.0045c3d0
lea eax, [esp + 0x74]
push eax
push eax
call fcn.0045c3d0
lea eax, [esp + 0xfc]
push eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x64]
push eax
call fcn.0045c850
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x10c]
push eax
call fcn.0045c460
movzx ecx, byte [esp + 0x53]
add esp, 0x40
movzx eax, byte [esp + 0x12]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x11]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x10]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x16]
mov dword [esp + 0x90], ecx
movzx ecx, byte [esp + 0x17]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x15]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x14]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x1a]
mov dword [esp + 0x94], ecx
movzx ecx, byte [esp + 0x1b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x19]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x18]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x98], ecx
movzx ecx, byte [esp + 0x1f]
shl ecx, 8
movzx eax, byte [esp + 0x1e]
or ecx, eax
movzx eax, byte [esp + 0x1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x1c]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x22]
mov dword [esp + 0x9c], ecx
movzx ecx, byte [esp + 0x23]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x21]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x20]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x26]
mov dword [esp + 0xa0], ecx
movzx ecx, byte [esp + 0x27]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x25]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2a]
mov dword [esp + 0xa4], ecx
movzx ecx, byte [esp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x29]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2e]
mov dword [esp + 0xa8], ecx
movzx ecx, byte [esp + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2c]
shl ecx, 8
or ecx, eax
lea eax, [esp + 0x30]
push eax
push eax
mov dword [esp + 0xb4], ecx
call fcn.0045c3d0
not byte [esp + 0x57]
lea eax, [esp + 0x58]
not byte [esp + 0x55]
not byte [esp + 0x54]
not byte [esp + 0x50]
not byte [esp + 0x4f]
not byte [esp + 0x4c]
not byte [esp + 0x4a]
not byte [esp + 0x49]
not byte [esp + 0x46]
not byte [esp + 0x44]
not byte [esp + 0x42]
not byte [esp + 0x40]
not byte [esp + 0x3f]
not byte [esp + 0x3d]
not byte [esp + 0x3b]
not byte [esp + 0x39]
push eax
push eax
call fcn.0045c3d0
lea eax, [esp + 0x60]
push eax
push eax
call fcn.0045c3d0
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x50]
push eax
call fcn.0045c850
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0xf8]
push eax
call fcn.0045c460
movzx ecx, byte [esp + 0x3f]
shl ecx, 8
movzx eax, byte [esp + 0x3e]
or ecx, eax
movzx eax, byte [esp + 0x3d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x42]
mov dword [esp + 0xdc], ecx
movzx ecx, byte [esp + 0x43]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x41]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x40]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x46]
mov dword [esp + 0xe0], ecx
movzx ecx, byte [esp + 0x47]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x45]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x44]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x4a]
mov dword [esp + 0xe4], ecx
movzx ecx, byte [esp + 0x4b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x49]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x48]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x4e]
mov dword [esp + 0xe8], ecx
movzx ecx, byte [esp + 0x4f]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x4d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x4c]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x52]
mov dword [esp + 0xec], ecx
movzx ecx, byte [esp + 0x53]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x51]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x50]
shl ecx, 8
or ecx, eax
mov dword [esp + 0xf0], ecx
movzx ecx, byte [esp + 0x57]
movzx eax, byte [esp + 0x56]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x55]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x54]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x5a]
mov dword [esp + 0xf4], ecx
movzx ecx, byte [esp + 0x5b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x59]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x58]
shl ecx, 8
or ecx, eax
lea eax, [esp + 0x5c]
push eax
push eax
mov dword [esp + 0x100], ecx
call fcn.0045c3d0
lea eax, [esp + 0x84]
push eax
push eax
call fcn.0045c3d0
lea eax, [esp + 0x8c]
push eax
push eax
call fcn.0045c3d0
add esp, 0x44
lea eax, [esp + 0xd0]
push eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.0045c850
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.0045c460
movzx ecx, byte [esp + 0x27]
movzx eax, byte [esp + 0x26]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x25]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x24]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2a]
mov dword [esp + 0x64], ecx
movzx ecx, byte [esp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x29]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x28]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2e]
mov dword [esp + 0x68], ecx
movzx ecx, byte [esp + 0x2f]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x2c]
shl ecx, 8
or ecx, eax
mov dword [esp + 0x6c], ecx
movzx ecx, byte [esp + 0x33]
shl ecx, 8
movzx eax, byte [esp + 0x32]
or ecx, eax
movzx eax, byte [esp + 0x31]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x30]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x36]
mov dword [esp + 0x70], ecx
movzx ecx, byte [esp + 0x37]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x35]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x34]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3a]
mov dword [esp + 0x74], ecx
movzx ecx, byte [esp + 0x3b]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x39]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x38]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3e]
mov dword [esp + 0x78], ecx
movzx ecx, byte [esp + 0x3f]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3d]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x3c]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x42]
mov dword [esp + 0x7c], ecx
movzx ecx, byte [esp + 0x43]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x41]
shl ecx, 8
or ecx, eax
movzx eax, byte [esp + 0x40]
shl ecx, 8
or ecx, eax
lea eax, [esp + 0x84]
push eax
lea eax, [esp + 0x28]
mov dword [esp + 0x84], ecx
push eax
push ebp
call fcn.0045c8c0
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.0045c8c0
lea eax, [esp + 0xdc]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [ebp + 0x10]
push eax
call fcn.0045c8c0
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x64]
push eax
lea eax, [ebp + 0x18]
push eax
call fcn.0045c8c0
add esp, 0x44
mov bl, byte [esp + 0x2f]
mov esi, 0xc
mov bh, byte [esp + 0x2e]
nop word [eax + eax]
movzx eax, byte [esp + 0x10]
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x14]
xor al, byte [esp + 0x16]
xor al, byte [esp + 0x28]
xor bh, al
movzx eax, byte [esp + 0x11]
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x15]
xor al, byte [esp + 0x17]
xor al, byte [esp + 0x29]
xor bl, al
lea eax, [esp + 0x12]
push 0x1e
push eax
lea eax, [esp + 0x18]
push eax
call fcn.004d0d60
add esp, 0xc
mov byte [esp + 0x2e], bh
mov byte [esp + 0x2f], bl
sub esi, 1
jne 0x45d350
lea ecx, [esp + 0x10]
xor eax, eax
sub edi, ecx
lea ecx, [esp + 0x10]
add ecx, eax
add eax, 0x10
movups xmm0, xmmword [ecx]
movups xmm1, xmmword [ecx + edi]
pxor xmm1, xmm0
movups xmmword [ecx], xmm1
cmp eax, 0x20
jl 0x45d3a7
mov bh, byte [esp + 0x10]
lea eax, [esp + 0x12]
xor bh, byte [esp + 0x12]
mov bl, byte [esp + 0x11]
xor bl, byte [esp + 0x13]
xor bh, byte [esp + 0x14]
xor bl, byte [esp + 0x15]
xor bh, byte [esp + 0x16]
xor bl, byte [esp + 0x17]
xor bh, byte [esp + 0x28]
xor bl, byte [esp + 0x29]
xor bh, byte [esp + 0x2e]
xor bl, byte [esp + 0x2f]
push 0x1e
push eax
lea eax, [esp + 0x18]
push eax
call fcn.004d0d60
mov edx, ebp
mov byte [esp + 0x3a], bh
lea eax, [esp + 0x1c]
mov byte [esp + 0x3b], bl
add esp, 0xc
xor ecx, ecx
sub edx, eax
nop dword [eax]
lea eax, [esp + 0x10]
add eax, ecx
add ecx, 0x10
movups xmm0, xmmword [eax]
movups xmm1, xmmword [eax + edx]
pxor xmm1, xmm0
movups xmmword [eax], xmm1
cmp ecx, 0x20
jl 0x45d420
mov bl, byte [esp + 0x2f]
mov esi, 0x3d
mov bh, byte [esp + 0x2e]
nop dword [eax]
movzx eax, byte [esp + 0x10]
xor al, byte [esp + 0x12]
xor al, byte [esp + 0x14]
xor al, byte [esp + 0x16]
xor al, byte [esp + 0x28]
xor bh, al
movzx eax, byte [esp + 0x11]
xor al, byte [esp + 0x13]
xor al, byte [esp + 0x15]
xor al, byte [esp + 0x17]
xor al, byte [esp + 0x29]
xor bl, al
lea eax, [esp + 0x12]
push 0x1e
push eax
lea eax, [esp + 0x18]
push eax
call fcn.004d0d60
add esp, 0xc
mov byte [esp + 0x2e], bh
mov byte [esp + 0x2f], bl
sub esi, 1
jne 0x45d450
movups xmm0, xmmword [esp + 0x10]
pop edi
pop esi
movups xmmword [ebp], xmm0
movups xmm0, xmmword [esp + 0x18]
movups xmmword [ebp + 0x10], xmm0
pop ebp
pop ebx
add esp, 0xe0
ret