Function at 0xe159a0
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, 0x90
mov dword [esp + 0x54], ecx
mov ebx, dword [ebp + 8]
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
mov dword [ebx], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x3c], 0x100000
mov dword [esp + 0xc], 0
mov word [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x8a858487
mov dword [esp + 0x5c], 0
mov eax, dword [esp + 0x5c]
cmp eax, 0x11
ja 0xe15a45
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x5c]
add al, 0x15
xor al, byte [esp + ecx + 0x10]
add al, 0x6d
mov ecx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x10], al
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
cmp eax, 0x12
jb 0xe15a20
mov eax, dword [esp + 0x10]
mov ecx, dword [0xe2a1f0]
test ecx, ecx
je 0xe15a98
xor edx, edx
mov esi, dword [0xe2a1f4]
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xdc7d74f5
je 0xe15a70
inc edx
cmp ecx, edx
jne 0xe15a60
jmp 0xe15a98
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0xe15a98
lea eax, [esp + 0x3c]
lea edx, [esp + 0xc]
push 4
push 0x3000
push eax
push 0
push edx
push 0xffffffffffffffff
push 6
push ecx
call fcn.00e15120
add esp, 0x20
test eax, eax
js 0xe161f4
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x48], 0x10000
jmp 0xe15b07
mov eax, dword [esp + 0x68]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
cmp eax, 0x7fffffff
jae 0xe16140
mov eax, dword [esp + 0x54]
mov ecx, dword [eax]
mov word [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x8a858487
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0xe15b70
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
add al, 0x15
xor al, byte [esp + edx + 0x10]
add al, 0x6d
mov edx, dword [esp]
mov byte [esp + edx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0xe15b50
mov eax, dword [esp + 0x10]
mov edx, dword [0xe2a1f0]
test edx, edx
je 0xe15bd0
xor esi, esi
mov edi, dword [0xe2a1f4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x6d705e18
je 0xe15ba0
inc esi
cmp edx, esi
jne 0xe15b90
jmp 0xe15bd0
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
je 0xe15bd0
push 0
push 0x1c
lea eax, [esp + 0x64]
push eax
push 0
push dword [esp + 0x58]
push ecx
push 6
push edx
call fcn.00e15120
add esp, 0x20
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp eax, 0xbfffffff
ja 0xe16140
test eax, eax
js 0xe15af0
cmp dword [esp + 0x6c], 0x1000
jne 0xe15af0
cmp dword [esp + 0x70], 1
je 0xe15af0
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x68], ecx
jbe 0xe15d84
mov word [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x8a858487
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0xe15c60
mov eax, dword [esp]
mov ecx, dword [esp]
add al, 0x15
xor al, byte [esp + ecx + 0x10]
add al, 0x6d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0xe15c40
mov eax, dword [0xe2a1f0]
test eax, eax
je 0xe15cb4
mov ecx, dword [esp + 0x10]
xor edx, edx
mov esi, dword [0xe2a1f4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9edbe8fe
je 0xe15c90
inc edx
cmp eax, edx
jne 0xe15c80
jmp 0xe15cb4
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0xe15cb4
push 0x8000
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x14]
push ecx
push 0xffffffffffffffff
push 4
push eax
call fcn.00e15120
add esp, 0x18
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x68]
mov dword [esp + 0x3c], eax
mov word [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x8a858487
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0xe15d20
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
add al, 0x15
xor al, byte [esp + ecx + 0x10]
add al, 0x6d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0xe15d00
mov eax, dword [esp + 0x10]
mov ecx, dword [0xe2a1f0]
test ecx, ecx
je 0xe15d78
xor edx, edx
mov esi, dword [0xe2a1f4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9edbe8fe
je 0xe15d50
inc edx
cmp ecx, edx
jne 0xe15d40
jmp 0xe15d78
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0xe15d78
push 4
push 0x3000
lea eax, [esp + 0x44]
push eax
push 0
lea eax, [esp + 0x1c]
push eax
push 0xffffffffffffffff
push 6
push ecx
call fcn.00e15120
add esp, 0x20
test eax, eax
js 0xe16140
mov ecx, dword [esp + 0x3c]
mov esi, dword [esp + 0xc]
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov dword [esp + 0x50], eax
mov word [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x8a858487
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0xe15df0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
add al, 0x15
xor al, byte [esp + edx + 0x10]
add al, 0x6d
mov edx, dword [esp]
mov byte [esp + edx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0xe15dd0
mov eax, dword [esp + 0x10]
mov edi, dword [0xe2a1f0]
test edi, edi
je 0xe15e50
xor ebx, ebx
mov edx, dword [0xe2a1f4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ebx*8], 0xb7fd7148
je 0xe15e23
inc ebx
cmp edi, ebx
jne 0xe15e10
mov ebx, dword [ebp + 8]
jmp 0xe15e50
mov edx, dword [edx + ebx*8 + 4]
cmp edx, eax
mov ebx, dword [ebp + 8]
je 0xe15e50
lea eax, [esp + 0x88]
push eax
push ecx
push esi
push dword [esp + 0x54]
push dword [esp + 0x60]
push 5
push edx
call fcn.00e15120
add esp, 0x1c
nop
nop
nop
nop
nop
cmp eax, 0xbfffffff
ja 0xe15af0
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x94]
push dword [esp + 0x1c]
lea eax, [esp + 0x14]
push eax
call fcn.00e16200
add esp, 0x18
mov edx, dword [esp]
mov eax, dword [esp + 4]
mov dword [esp + 0x50], eax
cmp edx, eax
je 0xe15af0
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
jmp 0xe15ef2
push dword [esp + 0x44]
call fcn.00e15050
add esp, 4
mov edx, dword [esp + 0x58]
mov ebx, dword [ebp + 8]
mov dword [ebx], edx
lea eax, [edx + esi*4]
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x7c]
lea eax, [edx + eax*4]
mov dword [ebx + 8], eax
mov ecx, edx
mov edx, dword [esp + 0x84]
mov edi, ebx
mov ebx, dword [esp + 0x80]
mov dword [ecx + esi*4], ebx
mov eax, dword [edi + 4]
add eax, 4
mov dword [edi + 4], eax
add edx, 4
cmp edx, dword [esp + 0x50]
mov ebx, edi
je 0xe16116
mov edi, ebx
mov ebx, dword [edx]
sub ebx, dword [esp + 0xc]
add ebx, dword [esp + 0x48]
mov esi, eax
sub esi, ecx
sar esi, 2
cmp eax, dword [edi + 8]
jne 0xe15ed7
mov dword [esp + 0x80], ebx
lea eax, [esi + 1]
mov ecx, esi
shr ecx, 1
add ecx, esi
cmp ecx, eax
ja 0xe15f20
mov ecx, eax
mov eax, 0xffffffff
cmp ecx, 0x40000000
mov ebx, edi
jae 0xe15f36
lea eax, [ecx*4]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], edx
mov byte [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xdbdad988
mov dword [esp + 0x38], 0
mov ecx, dword [esp + 0x38]
cmp ecx, 0x14
ja 0xe15fba
nop
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
movzx edi, byte [esp + ecx + 0x10]
lea ecx, [edx + edi]
add ecx, 0x41aa1f64
add edx, 0x41aa1f64
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x44
mov edx, dword [esp + 0x38]
mov byte [esp + edx + 0x10], cl
inc dword [esp + 0x38]
mov ecx, dword [esp + 0x38]
cmp ecx, 0x15
jb 0xe15f80
mov ecx, dword [esp + 0x10]
mov ecx, dword fs:[ecx]
push eax
push 0
push dword [ecx + 0x18]
call dword [0xe2a830]
mov edx, eax
mov eax, dword [ebx]
test eax, eax
je 0xe15eb3
mov edi, dword [ebx + 4]
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x40], ecx
cmp edx, eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x44], eax
jbe 0xe16053
cmp edi, edx
jbe 0xe16053
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0xe15ea0
mov eax, dword [esp + 0x44]
lea ecx, [eax + ebx]
dec ecx
mov eax, dword [esp + 0x58]
lea edx, [eax + ebx]
dec edx
mov eax, dword [esp + 0x44]
not eax
add eax, edi
mov dword [esp + 0x4c], eax
mov eax, ebx
and eax, 7
je 0xe160a9
neg eax
xor edi, edi
nop
nop
nop
nop
nop
movzx ebx, byte [ecx + edi]
mov byte [edx + edi], bl
dec edi
cmp eax, edi
jne 0xe16030
add ecx, edi
mov eax, dword [esp + 0x40]
add eax, edi
add edx, edi
cmp dword [esp + 0x4c], 7
jb 0xe15ea0
jmp 0xe160b8
mov ebx, dword [esp + 0x40]
mov ecx, ebx
shr ecx, 2
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, edx
mov edx, ebx
and edx, 0xfffffffc
add edx, eax
mov eax, ebx
not eax
or eax, 0xfffffffc
add eax, ebx
mov ecx, dword [esp + 0x44]
add eax, ecx
inc eax
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov dword [esp + 0x4c], eax
mov edi, edx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
test bl, 1
je 0xe15ea0
and ebx, 2
mov eax, dword [esp + 0x4c]
movzx eax, byte [eax + ebx]
mov byte [edx + ebx], al
jmp 0xe15ea0
mov eax, dword [esp + 0x40]
cmp dword [esp + 0x4c], 7
jb 0xe15ea0
neg eax
xor edi, edi
nop
nop
nop
nop
mov ebx, eax
movzx eax, byte [ecx + edi]
mov byte [edx + edi], al
movzx eax, byte [ecx + edi - 1]
mov byte [edx + edi - 1], al
movzx eax, byte [ecx + edi - 2]
mov byte [edx + edi - 2], al
movzx eax, byte [ecx + edi - 3]
mov byte [edx + edi - 3], al
movzx eax, byte [ecx + edi - 4]
mov byte [edx + edi - 4], al
movzx eax, byte [ecx + edi - 5]
mov byte [edx + edi - 5], al
movzx eax, byte [ecx + edi - 6]
mov byte [edx + edi - 6], al
movzx eax, byte [ecx + edi - 7]
mov byte [edx + edi - 7], al
mov eax, ebx
add edi, 0xfffffff8
cmp ebx, edi
jne 0xe160c0
jmp 0xe15ea0
mov eax, dword [esp]
test eax, eax
je 0xe15af0
cmp eax, dword [esp + 4]
je 0xe15af0
push eax
call fcn.00e15050
add esp, 4
mov dword [esp], 0
jmp 0xe15af0
mov word [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x8a858487
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x11
ja 0xe161a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
add al, 0x15
xor al, byte [esp + ecx + 0x10]
add al, 0x6d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x10], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x12
jb 0xe16180
mov eax, dword [0xe2a1f0]
test eax, eax
je 0xe161f4
mov ecx, dword [esp + 0x10]
xor edx, edx
mov esi, dword [0xe2a1f4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x9edbe8fe
je 0xe161d0
inc edx
cmp eax, edx
jne 0xe161c0
jmp 0xe161f4
mov eax, dword [esi + edx*8 + 4]
cmp eax, ecx
je 0xe161f4
push 0x8000
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x14]
push ecx
push 0xffffffffffffffff
push 4
push eax
call fcn.00e15120
add esp, 0x18
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10