Function at 0x1089870
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov ebp, dword [esp + 0x9c]
mov dword [esp + 4], ecx
mov edx, dword [ecx + 0x80]
mov dword [esp + 0x14], 0x65607e09
mov dword [esp + 0x18], 0x3a667d77
mov dword [esp + 0x1c], 0x7e666c00
mov dword [esp + 0x20], 0x69793b22
mov dword [esp + 0x24], 0x97b7c68
mov dword [esp + 0x28], 0x110c040f
mov dword [esp + 0x2c], 0x18491f55
mov dword [esp + 0x30], 0x80d010a
mov dword [esp + 0x34], 0xbea4a018
mov dword [esp + 0x38], 0xb3ba
mov byte [esp + 0x3c], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xad
xor cl, byte [esp + eax + 0x14]
add cl, 0x9f
mov byte [esp + eax + 0x14], cl
lea ecx, [eax + eax]
and ecx, 2
mov esi, ecx
and esi, eax
xor ecx, eax
xor ecx, 1
lea eax, [ecx + esi*2]
cmp eax, 0x29
jb 0x10898f0
mov dword [esp], 0xd9c4c822
xor eax, eax
movzx esi, byte [esp + eax]
lea edi, [eax + 0xaf]
mov ecx, 0x50
sub ecx, eax
xor ecx, edi
and ecx, esi
xor ecx, edi
add cl, 0x95
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x1089920
mov dword [esp + 0x48], 0xc0bb6563
mov dword [esp + 0x4c], 0xcbd5c7ce
mov dword [esp + 0x50], 0xf2b288c0
mov dword [esp + 0x54], 0xf8fbfbfd
mov dword [esp + 0x58], 0xf0f5fbf7
mov dword [esp + 0x5c], 0xe3a289fe
mov dword [esp + 0x60], 0xa6f9f5f5
mov dword [esp + 0x64], 0xfeeef8fc
mov dword [esp + 0x68], 0xf2e0bf91
mov dword [esp + 0x6c], 0xb79df4ef
mov dword [esp + 0x70], 0x8eeaecf2
mov dword [esp + 0x74], 0x8bcae6ca
mov dword [esp + 0x78], 0x9f899397
mov dword [esp + 0x7c], 0xea859c83
mov dword [esp + 0x80], 0x27c6
mov byte [esp + 0x84], 0
lea edi, [esp + 0x48]
mov ebx, 0x23ba2c6a
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [edi]
lea ecx, [ebx - 0x23ba2c00]
and ecx, eax
or eax, ebx
not eax
or eax, ecx
mov ecx, eax
xor ecx, 0xea
and eax, 0x15
add eax, eax
sub eax, ecx
inc al
mov byte [edi], al
inc edi
dec ebx
cmp ebx, 0x23ba2c2d
jne 0x10899e0
add ebp, edx
mov dword [esp + 0x10], ebp
mov word [esp + 8], 0xa4a5
mov byte [esp + 0xa], 0x92
mov dword [esp + 0xb], 0
mov edi, 0x4c919d64
mov edx, 0xb36e629b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebp, byte [esp + edx + 0x4c919d6d]
mov dword [esp + 0x40], ebp
not ebp
lea esi, [edi - 1]
mov dword [esp + 0x44], esi
or esi, ebp
mov eax, esi
not eax
mov ebx, eax
and ebx, 2
mov ecx, eax
or eax, 2
imul eax, ebx
mov ebx, esi
and ebx, 2
and ecx, 0xffffffbd
imul ebx, ecx
add ebx, eax
add ebx, edi
and ebx, ebp
shr esi, 1
and esi, 1
imul esi, ecx
lea ecx, [eax + esi*2]
mov eax, edx
sub eax, ecx
and eax, dword [esp + 0x40]
sub eax, ebx
add al, 0xf4
mov byte [esp + edx + 0x4c919d6d], al
inc edx
mov eax, dword [esp + 0x44]
mov edi, eax
cmp eax, 0x4c919d5d
jne 0x1089a40
movzx eax, byte [esp + 8]
mov esi, dword [esp + 0x10]
mov edx, esi
test al, al
je 0x1089acb
lea ecx, [esp + 9]
mov edx, esi
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089ac0
mov byte [edx], 0
mov ecx, dword [esp + 4]
movzx eax, byte [ecx + 0x60]
test al, al
je 0x1089aeb
add ecx, 0x61
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089ae0
mov byte [edx], 0
movzx eax, byte [esp + 0x48]
test al, al
je 0x1089b0b
lea ecx, [esp + 0x49]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089b00
mov byte [edx], 0
mov ecx, dword [esp + 0xa0]
movzx eax, byte [ecx]
test al, al
je 0x1089b2b
inc ecx
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089b20
mov byte [edx], 0
movzx eax, byte [esp]
test al, al
je 0x1089b4b
lea ecx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089b40
mov byte [edx], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x1089b6b
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089b60
mov byte [edx], 0
mov ebx, dword [esp + 0xa8]
mov ecx, ebx
shr ecx, 2
mov esi, dword [esp + 0xa4]
mov eax, esi
mov edi, edx
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
mov eax, ebx
and eax, 0xfffffffc
add edx, eax
add eax, esi
mov ecx, ebx
shr ecx, 1
and ecx, 1
mov esi, eax
mov edi, edx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov ecx, ebx
and ecx, 2
add edx, ecx
test bl, 1
je 0x1089bb7
movzx eax, byte [eax + ecx]
mov byte [edx], al
inc edx
mov dword [esp + 0x14], 0x5b414543
mov byte [esp + 0x18], 0x50
mov word [esp + 0x19], 0
mov byte [esp + 0x1b], 0
mov ecx, 0x42a83a0e
mov edi, 0xbd57c5f1
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x42a839fa]
lea esi, [edi + 1]
lea ebx, [ecx - 1]
or ebx, eax
or esi, eax
lea ebp, [ecx + esi]
xor ebp, ebx
mov eax, edi
sub eax, esi
and eax, ebx
add eax, eax
sub eax, ebp
add al, 0xbf
mov byte [esp + ecx - 0x42a839fa], al
inc ecx
dec edi
cmp edi, 0xbd57c5e9
jne 0x1089be0
mov dword [esp + 0x48], 0xcec1e5e3
mov byte [esp + 0x4c], 0x90
mov dword [esp + 0x4d], 0
mov dword [esp + 0x50], 0
mov ecx, 0x4b5931a5
mov edi, 0x5a
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 0x4b59315d]
mov eax, edi
xor eax, ecx
and eax, esi
xor eax, ecx
mov esi, eax
xor esi, 0x3a
and eax, 0x45
add eax, eax
sub eax, esi
inc al
mov byte [esp + ecx - 0x4b59315d], al
inc ecx
dec edi
cmp ecx, 0x4b5931b1
jne 0x1089c40
movzx eax, byte [esp + 0x48]
test al, al
mov edi, dword [esp + 0x10]
je 0x1089c9d
lea ecx, [esp + 0x49]
mov esi, dword [esp + 4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089c90
jmp 0x1089ca1
mov esi, dword [esp + 4]
mov byte [edx], 0
movzx eax, byte [esi + 0x60]
test al, al
je 0x1089cbb
lea ecx, [esi + 0x61]
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089cb0
mov byte [edx], 0
movzx eax, byte [esp + 0x14]
test al, al
je 0x1089cdb
lea ecx, [esp + 0x15]
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x1089cd0
mov byte [edx], 0
sub edx, edi
add dword [esi + 0x80], edx
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret 0x10