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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x108
cmp dword [ecx + 0x20], 0
je 0x108a173
mov esi, ecx
lea eax, [ecx + 0x10]
push eax
call fcn.01086560
add esp, 4
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 0x48]
mov dword [esp + 8], eax
movzx eax, byte [esi]
imul ecx, eax, 0xcd
shr ecx, 0xa
and ecx, 0xfffffffe
lea ecx, [ecx + ecx*4]
sub al, cl
movzx eax, al
movzx eax, byte [eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esp + 2], al
mov byte [esp + 3], 0
mov dword [esp + 4], edx
lea eax, [edx + 0x400]
push eax
call fcn.01088730
add esp, 4
mov edi, eax
mov dword [esp + 0x6c], 0xd5ddc2d4
mov byte [esp + 0x70], 0x48
mov word [esp + 0x71], 0
mov byte [esp + 0x73], 0
mov eax, 0xf3
mov ecx, 0xc
nop
nop
movzx edx, byte [esp + eax - 0x87]
mov ebx, eax
or ebx, edx
not edx
or edx, ecx
add edx, ebx
add dl, 0x42
mov byte [esp + eax - 0x87], dl
inc eax
dec ecx
cmp eax, 0xfb
jne 0x1089d90
lea ebx, [esp + 0x6c]
mov ecx, esi
push 0x10cba48
push ebx
push edi
call fcn.010895b0
mov dword [esp + 0x6c], 0x913a040c
mov byte [esp + 0x70], 0
mov eax, 0xf7f21d25
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x80de347]
xor ecx, eax
lea edx, [ecx + 6]
mov ebp, 0xb9
sub ebp, ecx
and ecx, 1
and ebp, 0xc1
and edx, 0x3e
or edx, ebp
xor edx, 0xc0
lea ecx, [edx + ecx*2]
mov byte [esp + eax + 0x80de347], cl
inc eax
cmp eax, 0xf7f21d2a
jne 0x1089de0
lea eax, [esp + 2]
mov ecx, esi
push eax
push ebx
push edi
call fcn.010895b0
mov eax, dword [str.IRiaFi__20new2]
mov dword [esp + 0x6c], 0x913a0400
mov word [esp + 0x70], 0
xor ecx, ecx
nop
nop
mov edx, ecx
add dl, 0xe5
xor dl, byte [esp + ecx + 0x6c]
add dl, 0x87
mov byte [esp + ecx + 0x6c], dl
inc ecx
cmp ecx, 6
jne 0x1089e40
mov ecx, esi
push eax
push ebx
push edi
call fcn.010895b0
mov dword [esp + 0x6c], 0x3f043c03
mov dword [esp + 0x70], 0xc33083b
mov dword [esp + 0x74], 0x3635380b
mov byte [esp + 0x78], 0x84
mov dword [esp + 0x79], 0
mov byte [esp + 0x7d], 0
xor eax, eax
nop
nop
nop
nop
lea ecx, [eax + eax]
mov ebp, ecx
and ebp, 8
mov edx, eax
xor edx, 0x64
add edx, ebp
xor dl, byte [esp + eax + 0x6c]
add dl, 0xc
mov byte [esp + eax + 0x6c], dl
and ecx, 2
xor eax, 1
add eax, ecx
cmp eax, 0x12
jb 0x1089e90
mov dword [esp + 0xc], 0xe91e0e03
mov byte [esp + 0x10], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0xc]
lea edx, [eax + 0xa7]
and edx, ecx
lea ebp, [eax + 0x4eb85fa7]
or ebp, ecx
xor ebp, edx
mov ecx, ebp
or ecx, 0xbc
add ecx, ebp
not ebp
or ebp, 0xbc
add ecx, ebp
add cl, 2
mov byte [esp + eax + 0xc], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 5
jb 0x1089ed0
lea eax, [esp + 0xc]
mov ecx, esi
push ebx
push eax
push edi
call fcn.010895b0
mov dword [esp + 0x6c], 0xdec6d8de
mov byte [esp + 0x70], 0x7c
mov dword [esp + 0x71], 0
mov byte [esp + 0x75], 0
xor eax, eax
nop
nop
nop
nop
mov ecx, eax
add cl, 0x14
xor cl, byte [esp + eax + 0x6c]
add cl, 0x9c
mov byte [esp + eax + 0x6c], cl
inc eax
cmp eax, 0xa
jne 0x1089f40
mov ecx, esi
push dword [esp + 4]
push dword [esp + 0xc]
push ebx
mov dword [esp + 0x10], edi
push edi
call fcn.01089870
mov dword [esp + 0xc], 0xc157c789
mov dword [esp + 0x10], 0xcd5ec356
mov dword [esp + 0x14], 0xc958cfa3
mov dword [esp + 0x18], 0xf59dcb54
mov dword [esp + 0x1c], 0xf16df788
mov dword [esp + 0x20], 0xfd9df360
mov dword [esp + 0x24], 0xf9deffa6
mov dword [esp + 0x28], 0xe565fb6f
mov dword [esp + 0x2c], 0xe17ae770
mov dword [esp + 0x30], 0xed72e38b
mov dword [esp + 0x34], 0xe97cef8f
mov dword [esp + 0x38], 0x15bbeb74
mov dword [esp + 0x3c], 0x1187177a
mov dword [esp + 0x40], 0x1d851382
mov dword [esp + 0x44], 0x19721f4b
mov dword [esp + 0x48], 0x5861b7b
mov dword [esp + 0x4c], 0x1430767
mov dword [esp + 0x50], 0xd600320
mov dword [esp + 0x54], 0x9910f9d
mov dword [esp + 0x58], 0x35660b9e
mov dword [esp + 0x5c], 0x31a43757
mov dword [esp + 0x60], 0x3d7533ab
mov word [esp + 0x64], 0x3f3c
mov dword [esp + 0x66], 0
xor eax, eax
xor edi, edi
nop
nop
movzx edx, byte [esp + edi + 0xc]
mov ebp, eax
and ebp, 0xa2
mov ecx, edi
xor ecx, 0x6cef1ad1
add ecx, ebp
xor ecx, edx
mov edx, ecx
and edx, 0xe4c40157
xor ecx, 0xf5d4e157
lea ebp, [ecx + edx*2]
lea ecx, [ecx + edx*2]
add ecx, 0xe97f9893
lea edx, [ebp*2 - 0x2d00ceda]
and edx, 2
mov ebp, edx
and ebp, ecx
or edx, ecx
xor edx, 1
add edx, ebp
mov byte [esp + edi + 0xc], dl
inc edi
add eax, 2
cmp edi, 0x5e
jne 0x108a030
movzx eax, word [esp + 0xc]
test ax, ax
je 0x108a0b1
lea ebx, [esp + 0x6c]
lea ecx, [esp + 0xe]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x108a0a0
mov word [ebx], 0
movzx ecx, byte [esi + 0x60]
test cl, cl
mov edi, dword [esp + 4]
je 0x108a0e1
lea eax, [esi + 0x61]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movsx ecx, cl
mov word [ebx], cx
add ebx, 2
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x108a0d0
mov dword [ebx], 0xa000d
mov word [ebx + 4], 0
mov eax, dword [esi + 0x80]
mov dword [esp + 0xc], 0xc165c715
mov dword [esp + 0x10], 0xcd69c350
mov word [esp + 0x14], 0xcfcc
mov dword [esp + 0x16], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x31
xor dl, byte [esp + ecx + 0xc]
add dl, 0xb
mov byte [esp + ecx + 0xc], dl
inc ecx
cmp ecx, 0xe
jne 0x108a120
lea ecx, [esp + 0x6c]
push 0x493e0
push eax
push edi
push 0
push 0
push ecx
lea eax, [esp + 0x24]
push eax
call fcn.0108c8b0
add esp, 0x1c
mov ebx, eax
push edi
call fcn.01088740
add esp, 4
mov eax, dword [esi + 0x80]
add dword [esi + 4], eax
mov dword [esi + 0x80], 0
jmp 0x108a175
mov bl, 1
mov eax, ebx
add esp, 0x108
pop esi
pop edi
pop ebx
pop ebp
ret