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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1c0
mov edi, ecx
mov eax, dword [0x10443bf0]
xor eax, ebp
mov dword [esp + 0x1b8], eax
xor eax, eax
lea edx, [esp + 0x9c]
mov dword [edx], eax
lea esi, [esp + 0x98]
mov dword [esi], eax
push esi
push edx
push dword [ebp + 8]
call fcn.100542be
test al, al
je 0x10055dee
mov esi, dword [ebp + 0x14]
lea ecx, [esp + 0x94]
mov dword [ecx], 0xffffffff
push esi
call fcn.1000145a
cmp byte [ebp + 0x18], 0
je 0x1005571d
mov eax, dword [esi]
test eax, eax
je 0x100556db
cmp dword [eax + 4], 0
jne 0x100556ea
lea ecx, [esp + 0x94]
push dword [ebp + 0x10]
call fcn.10001b56
cmp dword [edi + 0x10], 4
jg 0x10055727
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x100], xmm0
movdqa xmmword [esp + 0xf0], xmm0
mov eax, dword [esp + 0x94]
test eax, eax
je 0x100557b2
mov esi, dword [eax + 4]
jmp 0x100557b4
cmp dword [edi + 0x10], 5
jl 0x10055a75
pcmpeqd xmm0, xmm0
lea esi, [esp + 0xc0]
movdqa xmmword [esi], xmm0
push 4
push esi
call fcn.10005cab
add esp, 8
lea ebx, [esp + 0xf0]
push 0xc8
push 0xff
push ebx
call fcn.1023e960
add esp, 0xc
push ebx
call fcn.101415ff
add esp, 4
push 0x10
push esi
push ebx
call fcn.1014166f
add esp, 0xc
lea eax, [edi + 0x30]
push eax
push ebx
call fcn.10144052
add esp, 8
mov ecx, edi
push 0
push dword [ebp + 0x10]
mov esi, dword [ebp + 8]
push esi
call fcn.10055e10
cmp byte [ebp + 0x18], 0
je 0x100557a5
mov ecx, edi
push 1
lea eax, [esp + 0x98]
push eax
push esi
call fcn.10055e10
mov ecx, edi
push esi
call fcn.100561fe
jmp 0x10055de2
xor esi, esi
cmp esi, 0x20
mov ebx, 0x20
cmovb ebx, esi
test ebx, ebx
je 0x100557dd
lea ecx, [eax + 0xc]
test eax, eax
cmove ecx, eax
lea eax, [esp + 0xf0]
push ebx
push ecx
push eax
call fcn.1023e3e0
add esp, 0xc
cmp esi, 0x1f
ja 0x10055801
mov eax, 0x20
sub eax, ebx
lea ecx, [esp + ebx]
add ecx, 0xf0
push eax
push 0x1028d970
push ecx
call fcn.1023e3e0
add esp, 0xc
pcmpeqd xmm0, xmm0
lea ebx, [esp + 0xe0]
movdqa xmmword [ebx], xmm0
lea eax, [esp + 0xf0]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 0x20
sub esp, 0xc
movsd xmm0, qword [esp + 0x98]
movsd qword [esp], xmm0
mov dword [esp + 8], ebx
call fcn.101406e8
add esp, 0xc
cmp dword [edi + 0x10], 3
jl 0x10055883
mov esi, 0x32
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], 0x10
sub esp, 0xc
movsd xmm0, qword [esp + 0x90]
movsd qword [esp], xmm0
mov dword [esp + 8], ebx
call fcn.101406e8
add esp, 0xc
dec esi
jne 0x10055851
mov esi, dword [esp + 0x98]
lea eax, [esi - 0x20]
neg eax
xor edx, edx
cmp esi, 0x20
lea ecx, [esp + esi + 0xc0]
cmovae eax, edx
push eax
push 0xff
push ecx
call fcn.1023e960
add esp, 0xc
lea eax, [esp + 0xc0]
push esi
push ebx
push eax
call fcn.1023e3e0
xor ecx, ecx
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov eax, dword [eax]
test eax, eax
je 0x100558cd
mov ecx, dword [eax + 4]
cmp ecx, 0x20
mov ebx, 0x20
cmovb ebx, ecx
test ebx, ebx
je 0x100558fd
mov dword [esp], ecx
lea ecx, [eax + 0xc]
test eax, eax
cmove ecx, eax
push ebx
push ecx
lea eax, [esp + 0xf8]
push eax
call fcn.1023e3e0
mov ecx, dword [esp + 0xc]
add esp, 0xc
cmp ecx, 0x1f
ja 0x10055921
mov eax, 0x20
sub eax, ebx
lea ecx, [esp + ebx]
add ecx, 0xf0
push eax
push 0x1028d970
push ecx
call fcn.1023e3e0
add esp, 0xc
lea eax, [esp + 0xc0]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], esi
lea eax, [esp + 0xf0]
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0x20
sub esp, 0x10
movsd xmm0, qword [esp + 0x8c]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x84]
movq qword [esp], xmm0
call fcn.1013fd3f
add esp, 0x10
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0xb0], xmm0
movdqa xmmword [esp + 0xa0], xmm0
cmp dword [edi + 0x10], 3
jl 0x100559f2
mov bl, 1
test esi, esi
je 0x100559a7
xor eax, eax
mov cl, byte [esp + eax + 0xc0]
xor cl, bl
mov byte [esp + eax + 0xa0], cl
inc eax
cmp esi, eax
jne 0x10055992
lea eax, [esp + 0xa0]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], esi
lea eax, [esp + 0xf0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], 0x20
sub esp, 0x10
movsd xmm0, qword [esp + 0x7c]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x74]
movq qword [esp], xmm0
call fcn.1013fd3f
add esp, 0x10
inc bl
cmp bl, 0x14
jne 0x1005598c
lea eax, [esp + 0x5f]
mov byte [eax], 0
lea ecx, [esp + 0x58]
push 0x20
lea eax, [esp + 0xf4]
push eax
call fcn.100015c6
lea ebx, [esp + 0x54]
mov ecx, ebx
push 0x1028d711
call fcn.1000152c
lea esi, [esp + 0x60]
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x5f]
push eax
lea eax, [esp + 0x5c]
push eax
push ebx
push esi
call fcn.100206a0
mov ebx, dword [esi]
mov dword [esi], 0
test ebx, ebx
je 0x10055a63
mov eax, dword [ebx + 4]
test eax, eax
je 0x10055e06
dec eax
mov dword [ebx + 4], eax
jne 0x10055a63
mov eax, dword [ebx]
mov esi, dword [eax]
mov ecx, esi
call dword [section..00cfg]
mov ecx, ebx
push 1
call esi
lea ecx, [esp + 0x54]
call fcn.10001802
lea ecx, [esp + 0x58]
call fcn.10001802
mov esi, dword [ebp + 0xc]
lea ebx, [esp + 0xe0]
mov dword [ebx], 0xffffffff
mov ecx, ebx
call fcn.100016c8
test esi, esi
je 0x10055ab7
lea eax, [esp + 0xf0]
mov ecx, esi
push 0
push eax
mov esi, eax
call fcn.1003cf3e
lea ecx, [esp + 0xe0]
push esi
call fcn.10001ba0
mov ecx, esi
call fcn.10001802
mov esi, dword [esp + 0x98]
lea eax, [edi + 0x30]
mov ecx, dword [edi + 0x28]
mov edx, dword [ebp + 0x10]
push ebx
mov ebx, eax
push 0
push esi
push eax
call fcn.10054fa6
add esp, 0x10
cmp dword [edi + 0x10], 2
jg 0x10055bba
movups xmm0, xmmword [0x1028d980]
mov eax, ebx
lea ebx, [esp + 0xf0]
movaps xmmword [ebx + 0x10], xmm0
movups xmm0, xmmword [0x1028d970]
movaps xmmword [ebx], xmm0
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], esi
mov dword [esp + 0x44], ebx
mov esi, 0x20
mov dword [esp + 0x48], esi
sub esp, 0x10
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x54]
movq qword [esp], xmm0
call fcn.1013fd3f
add esp, 0x10
lea eax, [esp + 0x58]
mov byte [eax], 0
lea edi, [esp + 0xc0]
mov ecx, edi
push esi
push ebx
call fcn.100015c6
lea esi, [esp + 0xa0]
mov ecx, esi
push 0x1028d962
call fcn.1000152c
lea ebx, [esp + 0x40]
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x58]
push eax
push edi
push esi
push ebx
call fcn.100206a0
mov esi, dword [ebx]
mov dword [ebx], 0
test esi, esi
je 0x10055ba2
mov eax, dword [esi + 4]
test eax, eax
je 0x10055e09
dec eax
mov dword [esi + 4], eax
jne 0x10055ba2
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
call edi
lea ecx, [esp + 0xa0]
call fcn.10001802
lea ecx, [esp + 0xc0]
jmp 0x10055dd1
mov dword [esp], ebx
xor eax, eax
dec eax
lea ebx, [esp + 0xf0]
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x50], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [ebx + 0x40], xmm0
movdqa xmmword [ebx + 0x30], xmm0
movdqa xmmword [ebx + 0x20], xmm0
movdqa xmmword [ebx + 0x10], xmm0
movdqa xmmword [ebx], xmm0
push ebx
call fcn.1013fe42
add esp, 4
mov dword [esp + 0x38], 0x1028d970
mov dword [esp + 0x3c], 0x20
sub esp, 0xc
movq xmm0, qword [esp + 0x44]
movq qword [esp + 4], xmm0
mov dword [esp], ebx
call fcn.1013fe7a
add esp, 0xc
mov eax, dword [esp + 0xe0]
test eax, eax
je 0x10055c53
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x10055c53
add eax, 0xc
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
sub esp, 0xc
movq xmm0, qword [esp + 0x3c]
movq qword [esp + 4], xmm0
mov dword [esp], ebx
call fcn.1013fe7a
add esp, 0xc
lea eax, [esp + 0xd0]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax], xmm0
movdqa xmmword [eax - 0x10], xmm0
mov eax, ebx
lea ebx, [esp + 0xc0]
push ebx
push eax
call fcn.101405f6
add esp, 8
mov eax, dword [esp]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], 0x10
sub esp, 0x10
movsd xmm0, qword [esp + 0x38]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x30]
movq qword [esp], xmm0
call fcn.1013fd3f
add esp, 0x10
lea eax, [esp + 0xa0]
pcmpeqd xmm0, xmm0
movdqa xmmword [eax + 0x10], xmm0
movdqa xmmword [eax], xmm0
mov bl, 1
test esi, esi
je 0x10055ce1
xor eax, eax
mov cl, byte [edi + eax + 0x30]
xor cl, bl
mov byte [esp + eax + 0xa0], cl
inc eax
cmp esi, eax
jne 0x10055ccf
lea eax, [esp + 0xa0]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], esi
lea eax, [esp + 0xc0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0x10
sub esp, 0x10
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 8], xmm0
movq xmm0, qword [esp + 0x20]
movq qword [esp], xmm0
call fcn.1013fd3f
add esp, 0x10
inc bl
cmp bl, 0x14
jne 0x10055cc9
lea esi, [esp + 0xc0]
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x10
sub esp, 0xc
movq xmm0, qword [esp + 0x14]
movq qword [esp], xmm0
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
call fcn.101406e8
add esp, 0xc
lea eax, [esp + 0x5f]
mov byte [eax], 0
lea edi, [esp + 0x58]
mov ecx, edi
push 0x20
push esi
call fcn.100015c6
lea esi, [esp + 0x54]
mov ecx, esi
push 0x1028d962
call fcn.1000152c
lea ebx, [esp + 4]
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x5f]
push eax
push edi
push esi
push ebx
call fcn.100206a0
mov esi, dword [ebx]
mov dword [ebx], 0
test esi, esi
je 0x10055dc4
mov eax, dword [esi + 4]
test eax, eax
je 0x10055e0c
dec eax
mov dword [esi + 4], eax
jne 0x10055dc4
mov eax, dword [esi]
mov edi, dword [eax]
mov ecx, edi
call dword [section..00cfg]
mov ecx, esi
push 1
call edi
lea ecx, [esp + 0x54]
call fcn.10001802
lea ecx, [esp + 0x58]
call fcn.10001802
lea ecx, [esp + 0xe0]
call fcn.10001802
lea ecx, [esp + 0x94]
call fcn.10001802
mov ecx, dword [esp + 0x1b8]
xor ecx, ebp
call fcn.1023b4d8
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
int3
int3
int3