Function at 0x573a98
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push esi
mov esi, dword [ebp + 8]
test byte [esi + 0x24], 1
je 0x573e5e
cmp byte [ebp + 0x10], 1
push edi
jne 0x573ad7
mov eax, dword [esi + 0x14]
add eax, 0xfffffffe
cmp eax, 5
ja 0x573e5d
jmp dword [eax*4 + 0x407a9c]
mov edi, dword [ebp + 0xc]
test edi, edi
jle 0x573e5d
cmp edi, 0xd
jge 0x573e5d
mov eax, dword [edi*4 + 0x768270]
dec edi
push ebx
push 0x1b7
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], 0
call fcn.00631a7c
mov bl, byte [ebp + 0x14]
cmp eax, 1
je 0x573b23
cmp bl, 1
jne 0x573dd9
mov eax, dword [edi*4 + 0x7682a4]
cmp eax, 8
jg 0x573b34
cmp dword [esi + 0x14], eax
jg 0x573b3d
cmp bl, 1
jne 0x573dd9
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x7682f0]
mov dword [0x779070], 0
mov dword [0x779074], 0xffffff
mov ecx, 0xff
mov edi, 0x779078
rep stosd dword es:[edi], eax
lea eax, [ebp - 4]
push eax
push esi
push 0x6c1be0
push 0x316
push 0x6c1b38
mov ecx, 0x77c500
mov dword [ebp - 0x20], 0x779070
call fcn.005713c8
cmp bl, 1
jne 0x573c22
cmp dword [ebp - 4], 0x7d0
jbe 0x573bd0
push 0
push 0
push 0
push 0
push 0
push 0x10006
push 8
push 0xa4
push esi
push esi
push 0x6c1be0
push 0x323
push 0x6c1b38
mov ecx, 0x77c340
call fcn.00570cf8
cmp dword [esi + 0x14], 0x18
je 0x573c04
push 0
push 0
push 0
push 0
push 0
push 4
push 0x18
push 0xa4
push esi
push esi
push 0x6c1be0
push 0x326
push 0x6c1b38
mov ecx, 0x77c340
call fcn.00570cf8
lea eax, [ebp - 4]
push eax
push esi
push 0x6c1be0
push 0x327
push 0x6c1b38
mov ecx, 0x77c500
call fcn.005713c8
push 0x1f40
call fcn.00632129
mov edi, eax
push 0x1f40
mov dword [ebp - 0xc], edi
call fcn.00632129
add esp, 8
cmp dword [ebp - 4], 0x7d0
mov ebx, eax
mov dword [ebp - 8], ebx
jae 0x573dbc
test edi, edi
je 0x573dc9
test ebx, ebx
je 0x573dbc
or eax, 0xffffffff
mov ecx, 0x7d0
mov edi, ebx
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 4]
xor ecx, ecx
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x14], ecx
cmp eax, 6
je 0x573c90
cmp eax, 8
je 0x573c90
cmp eax, 5
je 0x573c90
cmp eax, 7
je 0x573c90
mov eax, dword [esi + 0xc]
jmp 0x573c93
mov eax, dword [esi + 0x10]
xor ebx, ebx
cmp ecx, eax
jge 0x573d3f
mov eax, dword [esi + 0x30]
cmp eax, 6
je 0x573cb9
cmp eax, 8
je 0x573cb9
cmp eax, 5
je 0x573cb9
cmp eax, 7
je 0x573cb9
mov eax, dword [esi + 0x10]
jmp 0x573cbc
mov eax, dword [esi + 0xc]
cmp ebx, eax
jge 0x573d39
lea ebp, [edi]
bound edi, qword [edi - 0x75]
pop ds
pushfd
invalid
lodsd eax, dword [esi]
mov edi, ebx
sti
xor dl, bh
call 0x68e3751c
mov word [eax - 0x7e], gs
enter 0xffffffffffffb961, 0x4a
lodsb al, byte [esi]
pop eax
fdiv st(5), st(0)
or al, 0x61
mov ecx, 0xdc58ac4a
std
test eax, 0xec06fc6e
dec esi
jl 0x573d37
pushfd
fidivr word [ebp - 0x56]
popal
fld qword [edx - 0x42596d44]
pop ds
ret
xchg edx, eax
cmpsb byte [esi], byte es:[edi]
mov ebp, 0xd9dfc31f
xor cl, byte [edx + edi*4 + 0x3ec91bd8]
inc esp
mov ah, 0xa9
imul edi, dword [edi], 0x51
mov edx, 0xc2f1f2dd
pop esp
or dword [ecx + ebp + 0x53491f4a], ecx
stc
wait
mov word [edx + 0xe0d8ccb], gs
je 0x573d41
push ds
cdq
fild qword [bp + si - 0x34]
outsb dx, byte [esi]
test al, 0xf2
cmp al, 0x5e
sbb dword [edx + 0xc], esp
dec ecx
or byte [ebx + 0x721f8f76], bl
inc ecx
out dx, al
add eax, 0x2e9eb573
mov word fs:[esi], gs
mov edi, edi
call [edx - 0x56]
scasb al, byte es:[edi]
dec esp
invalid
dec ebp
invalid
loope 0x573d5a
xor ecx, edi
sbb ch, cl
push ebx
push es
mov eax, dword [0x4d6fb4ed]
call dword [esi + 0x7a90b444]
cmp ebp, edi
mov ah, 0x90
jp 0x573e03
cmp ebp, edi
fimul word [esi + ebp*8]
cmp byte [ecx - 0x17], dl
ret
invalid
mov ah, bl
inc ebx
adc eax, 0x31a36bd9
xchg esi, eax
int 0x8f
stosb byte es:[edi], al
cmp al, 0x2e
jno 0x573e2d
imul edx, dword [eax + 0x2b8171c3], 0x72d44d6f
or cl, byte [esi + 0x74]
or dword [ebx + 0xd74fd53], ebx
scasd eax, dword es:[edi]
sub eax, 0x3993a457
sahf
cmp eax, 0x7b3f5df5
iretd
les ebp, [ebx + 0x3e1bf8fe]
sub eax, 0xed402c0a
js 0x573e58
sar al, 1
inc edx
mov eax, dword [0x9f6c8637]
push ebx
sub eax, 0xcbb30d04
mov eax, dword [0x9e636c5e]
stc
push esp
fcom dword [esi + 0x1be8b431]
xor byte [edx - 0x5b], cl
insd dword es:[edi], dx
insd dword es:[edi], dx
cmpsd dword [esi], dword es:[edi]
outsb dx, byte [esi]
or bl, ch
push edi
push ebp
xlatb
inc esp
cvtps2pi mm3, qword [edx]
insd dword es:[edi], dx
pop ss
fidiv dword [edx + 0x5f55ba14]
jle 0x573e79
jle 0x573e30
insb byte es:[edi], dx
scasd eax, dword es:[edi]
pop ss
std
cmp byte [edx - 0x5b], dl
enter 0x4514, 4
jle 0x573f13
pop ebp
mov eax, dword [0x3fa827e1]
mov eax, 0xa4cd6251
fiadd word [eax]
int 0x80
cmp dh, al
and eax, 0xbf3111cb
or eax, 0x696b489a
push ecx
sub eax, 0xb3dbab68
sub ebx, dword [ebx]
jbe 0x573f49
insb byte es:[di], dx
popfd
mov ah, byte [edi + ecx + 0x734a592e]
fild word [edx - 0x2350e231]
invalid
cmp eax, 0x586ffc6a
jle 0x573ef7
mov al, 0xda
lds edx, [edi - 0x23]
dec esi
invalid
fisttp qword [esi - 0x71]
mov word [esi - 0x5992b80c], cs
inc edi
insd dword es:[edi], dx
cmpsb byte [esi], byte es:[edi]
pop ebp
invalid
mov edi, 0xfe480cfd
in eax, dx
ja 0x573ef1
not ecx
lahf
pop ebp
add byte [esi + 2], 0x10
push ss
lodsd eax, dword [esi]
jp 0x573ee6
fist word [ebp - 0x512f2142]
mov edi, 0xd1e59608
push ds
invalid
add al, 0xc5
cmp byte [esi + edx*2 + 0x47e5d1ae], dh
adc eax, 0x19cc8462
xchg edi, eax
inc ecx
call [eax]
push 0xfef82ae4
jmp 0x4124250