Function at 0xd7a530
Capabilities:
Encode data using xor

Disassembly:
pop eax
add eax, 0xb
mov dword [ebx], eax
jmp 0xd7a51e
call 0xd7a530
pop ss
mov edi, 0x60c24d04
sbb al, 0x50
sti
add dh, ch
sbb ebx, 0x5a55c080
push eax
jno 0xd7a53d
mov cl, dh
pop eax
sti
add edx, 0xe9df
push edi
mov cx, 0x7252
pop eax
mov ebx, 0x3a4c
movzx ecx, dx
mov esi, dword [edx]
push eax
mov di, 0xf6d0
pop edi
add esi, 0x612e2774
xor esi, 0x894fa74
push eax
movzx ecx, di
pop ecx
xor esi, 0xd68e1ea
jne 0xd7a57c
mov cx, 0xab60
mov dword [edx], esi
jmp 0xd7a592
sub edx, 0x38f7aedb
pushal
mov esi, ebx
or dh, 0x8d
popal
add edx, 0x38f7aed7
jle 0xd7a5ae
movsx edi, si
dec ebx
jne 0xd7a5cb
pushal
cld
movsx ebx, bx
popal
sti
jmp 0xd7a5d6
stc
jmp 0xd7a553
cmp dword [ebp + 0x122d15ed], 0
je 0xd7a5ed
mov dword [ebp + 0x122d3bcb], 1
mov eax, dword [ebp + 0x122d0281]
mov esi, eax
mov ecx, dword [esi + 0x3c]
add esi, ecx
mov ecx, 0x400000
mov dword [ebp + 0x124ebf51], ecx
mov edi, dword [ebp + 0x122d3d23]
test edi, edi
jne 0xd7a618
jmp 0xd7a759
mov esi, edi
mov ecx, 0x4a94
lodsb al, byte [esi]
xor al, 0x37
stosb byte es:[edi], al
dec ecx
jne 0xd7a61f
mov ecx, dword [ebp + 0x122d3d23]
mov edi, dword [ebp + 0x122d0281]
mov esi, dword [ebp + 0x124ebf51]
cmp edi, esi
jne 0xd7a649
jmp 0xd7a74a
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
sub dword [ebp + 0x122d14fd], edx
sub edx, 8
add ecx, 8
add eax, edi
pushal
mov ebx, eax
push ebx
push 0x1000
push ebx
call dword [ebp + 0x122d2118]
pop ebx
test eax, eax
je 0xd7a68a
lea eax, [ebp + 0x122d346a]
push eax
push 0x40
push 0x1000
push ebx
call dword [ebp + 0x122d356c]
popal
mov bx, word [ecx]
test bx, 0xf000
je 0xd7a731
and ebx, 0xfff
add ebx, eax
cmp dword [ebp + 0x122d3c5f], 1
jne 0xd7a6c7
cmp byte [ebx - 2], 0xe8
jne 0xd7a6c7
cmp byte [ebx + 3], 0x90
jne 0xd7a6c7
jmp 0xd7a731
cmp byte [ebx - 1], 0xc5
jne 0xd7a6f4
cmp dword [ebp + 0x122d3cdb], 0
je 0xd7a6f4
cmp dword [ebp + 0x122d1435], 0
je 0xd7a6f4
mov byte [ebx - 1], 0xe9
jmp 0xd7a731
cmp dword [ebp + 0x122d15ed], 0
je 0xd7a721
cmp byte [ebx - 1], 0xc5
jne 0xd7a721
cmp dword [ebp + 0x122d3cdb], 0
je 0xd7a721
mov byte [ebx - 1], 0xe9
jmp 0xd7a731
cmp dword [ebx], 0x90909090
je 0xd7a731
sub dword [ebx], esi
add dword [ebx], edi
add ecx, 2
sub edx, 2
jne 0xd7a68b
cmp dword [ebp + 0x122d14fd], 0
jne 0xd7a649
mov edi, dword [ebp + 0x122d3d23]
mov ecx, 0x4a94
xor al, al
rep stosb byte es:[edi], al
mov edx, 0x28639002
mov edi, dword [ebp + 0x122d026d]
mov ecx, 0x79
lea esi, [ebp + 0x125417ac]
rep movsb byte es:[edi], byte [esi]
xor edx, 0x28634112
mov edi, dword [ebp + 0x122d026d]
add edi, 0xe
test edx, edx
je 0xd7a78e
add edx, dword [ebp + 0x122d0281]
mov dword [edi + 1], edx
mov edx, dword [ebp + 0x122d3566]
mov edi, dword [ebp + 0x122d026d]
add edi, 0x54
mov dword [edi + 1], edx
mov edi, dword [ebp + 0x122d026d]
add edi, 0x49
mov dword [edi + 1], ebp
mov edi, dword [ebp + 0x122d026d]
add edi, 0x25
mov dword [edi + 1], ebp
jmp 0xd7a839
mov eax, edx
jmp 0xd7a85c
loopne 0xd7a869
add byte [eax], al
inc ebx
sbb byte [edx + edx], dl
je 0xd7a870
add byte [eax], al
jmp 0xd7aa0b
lea eax, [ebp + 0x12541848]
push eax
push 0
push 0
lea eax, [ebp + 0x12541883]
push eax
push 0
push 0
call dword [ebp + 0x122d3d0b]
call dword [ebp + 0x12452914]
jmp 0xd7aa0b
ror byte [edi], 0x84
add eax, 0xe9000000
add eax, 0xe9000000
xchg edi, eax
invalid
mov eax, ecx
jmp 0xd7aa3a
and al, 0
add byte [eax], al
add al, ch
add byte [eax], al
add byte [eax], al
pop ebp
sub ebp, 0x12541a0a
mov eax, dword [esp + 4]
mov dword [ebp + 0x122d3a87], eax
mov eax, 0
jmp dword [ebp + 0x122d3566]
mov eax, 0x6754
dec dl
das
mov ecx, 0x318ca885
ror dword [edx - 0x577a4196], 0xab
aad 0xea
jne 0xd7aa14
mov esi, 0x368aa885
ror dword [edx + 0x57ae5dba], 0x67
aaa
ror dword [edx - 0x577a40ce], 0xab
aad 0xea
jne 0xd7a9ef
mov edi, 0x3455a885
ror dword [edx - 0x577a43f9], 0xd7
xor al, 0xc1
mov bh, cl
mov esp, 0xd5aba885
ljmp 0x4ffe