Function at 0x42dd86
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x88
mov eax, dword [0x451cf8]
mov dword [esp + 0x24], 0x39753b57
mov dword [esp + 0x28], 0x25b627a8
mov dword [esp + 0x2c], 0x218d2368
mov dword [esp + 0x30], 0x2d812fbc
mov dword [esp + 0x34], 0x298e2b47
mov dword [esp + 0x38], 0x1587179a
mov dword [esp + 0x3c], 0x11b91388
mov dword [esp + 0x40], 0x1db11f80
mov dword [esp + 0x44], 0x194f1bb0
mov dword [esp + 0x48], 0x5a2074d
mov dword [esp + 0x4c], 0x1a90399
mov dword [esp + 0x50], 0xd930f9d
mov dword [esp + 0x54], 0x99b0b9b
mov dword [esp + 0x58], 0x7524779a
mov dword [esp + 0x5c], 0x71e173ec
mov dword [esp + 0x60], 0x7d7e7fe4
mov byte [esp + 0x64], 0
mov ecx, 0xb
mov edx, 0xf4
nop
nop
movzx esi, byte [esp + ecx + 0x19]
mov ebx, edx
xor ebx, ecx
and ebx, esi
xor ebx, ecx
add bl, 0xc9
mov byte [esp + ecx + 0x19], bl
inc ecx
dec edx
cmp ecx, 0x4c
jne 0x42d870
lea esi, [esp + 0x84]
lea ecx, [esp + 0x24]
push esi
push 0
push 0
push 0x1f
push ecx
push 0
call eax
mov edi, dword [esp + 0x84]
test edi, edi
jns 0x42d8b4
mov eax, 0xffffffff
jmp 0x42d8b7
lea eax, [edi + edi]
push eax
call fcn.0040c510
add esp, 4
mov ebx, eax
mov eax, dword [0x451cf8]
mov dword [esp + 0x24], 0x83438165
mov dword [esp + 0x28], 0x87368534
mov dword [esp + 0x2c], 0x8b2b894c
mov dword [esp + 0x30], 0x8f2f8d38
mov dword [esp + 0x34], 0x934e9175
mov dword [esp + 0x38], 0x9739955a
mov dword [esp + 0x3c], 0x9b3f992c
mov dword [esp + 0x40], 0x9f3f9d2c
mov dword [esp + 0x44], 0x638961c4
mov dword [esp + 0x48], 0x67ba658f
mov dword [esp + 0x4c], 0x6bcf69db
mov dword [esp + 0x50], 0x6fdd6ddf
mov dword [esp + 0x54], 0x73dd71d9
mov dword [esp + 0x58], 0x779875da
mov dword [esp + 0x5c], 0x7bd779c0
mov dword [esp + 0x60], 0x7f7e7dd0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
mov edx, ecx
add dl, 0x60
xor dl, byte [esp + ecx + 0x24]
add dl, 0x20
mov byte [esp + ecx + 0x24], dl
inc ecx
cmp ecx, 0x40
jne case.default.0x42d990
push esi
push edi
push ebx
push 0x1f
lea ecx, [esp + 0x34]
push ecx
push 0
call eax
lea eax, [esp + 0x20]
push 0x60
push 3
push 0x120089
push eax
push ebx
call fcn.00444db0
add esp, 0x14
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44de74]
xor eax, eax
jmp dword [0x44df6c]
push ebx
mov esi, eax
call fcn.0040c520
mov eax, esi
add esp, 4
add esp, 0x88
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x80], ebx
lea eax, [esp + 0x78]
push 0
push eax
push dword [esp + 0x28]
call fcn.00445160
add esp, 0xc
not eax
shr eax, 0x1f
xor ebp, ebp
mov dword [esp + 0x14], 0
jmp dword [eax*4 + 0x44de7c]
jmp dword [0x44de88]
mov esi, dword [esp + 0x78]
lea eax, [esi + 1]
push eax
call fcn.0040c510
add esp, 4
push 0
push esi
push eax
push dword [esp + 0x2c]
call fcn.00445250
add esp, 0x10
nop
nop
nop
mov esi, dword [esp + 0x78]
lea eax, [esi + 1]
push eax
call fcn.0040c510
add esp, 4
mov edi, eax
push 0
push esi
push eax
push dword [esp + 0x2c]
call fcn.00445250
add esp, 0x10
jmp dword [0x44de8c]
mov dword [esp + 0x7c], edi
not eax
shr eax, 0x1f
mov dword [esp + 0x14], 0
jmp dword [eax*4 + 0x44de94]
mov eax, dword [esp + 0x78]
mov esi, dword [esp + 0x7c]
mov byte [esi + eax], 0
mov dword [esp + 0x14], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x24], 0xdec6d8de
mov dword [esp + 0x28], 0xd2cbdcca
mov word [esp + 0x2c], 0x1bfd
mov byte [esp + 0x2e], 0x3a
mov dword [esp + 0x2f], 0
mov edx, 0x74
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0x50]
mov ebx, eax
mov edi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, edi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xbc
mov byte [esp + edx - 0x50], al
inc edx
cmp edx, 0x83
jne 0x42daa0
movzx ecx, byte [esp + 0x24]
test cl, cl
je 0x42db30
lea eax, [esp + 0x24]
mov edi, esi
jmp 0x42db07
movzx ecx, byte [eax]
test cl, cl
je 0x42db42
movzx edx, byte [esi]
test dl, dl
je 0x42db40
inc esi
inc eax
lea ebx, [edi + 1]
cmp dl, cl
je 0x42db1b
mov edi, ebx
mov esi, ebx
je 0x42db00
lea eax, [esp + 0x24]
jmp 0x42db00
mov edi, esi
jmp 0x42db42
xor edi, edi
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x44de9c]
lea esi, [edi + 0xa]
movzx eax, byte [edi + 0xa]
xor edx, edx
test al, al
je 0x42db72
mov ecx, esi
nop
cmp al, 0x22
je 0x42db70
movzx eax, byte [ecx + 1]
inc ecx
test al, al
jne 0x42db60
jmp 0x42db72
mov edx, ecx
mov ebx, edx
sub ebx, esi
xor eax, eax
cmp ebx, 5
setb al
jmp dword [eax*4 + 0x44dea4]
movzx eax, byte [edx - 1]
mov ecx, dword [case.0x42db7e.5]
nop
jmp ecx
xor ecx, ecx
cmp al, 0x74
setne cl
jmp dword [ecx*4 + 0x44debc]
xor eax, eax
cmp byte [edx - 2], 0x78
setne al
jmp dword [eax*4 + 0x44dec4]
xor eax, eax
cmp byte [edx - 3], 0x74
setne al
jmp dword [eax*4 + 0x44decc]
xor eax, eax
cmp byte [edx - 4], 0x2e
setne al
jmp dword [eax*4 + 0x44ded4]
mov dword [esp + 0x18], edx
lea eax, [ebx*2 + 2]
mov dword [esp + 0x10], eax
mov dword [esp + 4], ebx
jmp dword [0x44dee0]
mov eax, ebx
inc ebx
jns 0x42dbf5
mov eax, 0xffffffff
jmp 0x42dbfc
lea eax, [eax*2 + 2]
push eax
call fcn.0040c510
add esp, 4
mov ebp, eax
push dword [esp + 0x18]
push esi
push ebx
push eax
call fcn.0040eab0
add esp, 0x10
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.00444db0
add esp, 0x14
mov ebx, dword [esp + 4]
jmp case.0x42db7e.15
push eax
call fcn.0040c510
add esp, 4
mov ebp, eax
push dword [esp + 0x18]
push esi
push ebx
push eax
call fcn.0040eab0
add esp, 0x10
push 0x60
push 3
push 0x120089
lea eax, [esp + 0x28]
push eax
push ebp
call fcn.00444db0
add esp, 0x14
mov ebx, dword [esp + 4]
jmp dword [0x44dee8]
inc ebx
mov eax, dword [esp + 0x10]
jns 0x42dc40
mov eax, 0xffffffff
jmp 0x42dc40
mov dword [esp + 0x10], ebp
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44deec]
mov ebx, dword [esp + 0x18]
mov esi, ebx
mov eax, dword [esp + 0x10]
xor ebp, ebp
jmp dword [0x44df3c]
push 0
lea eax, [esp + 0x78]
push eax
push dword [esp + 0x24]
call fcn.00445160
add esp, 0xc
test eax, eax
setns al
mov ebx, dword [esp + 0x74]
cmp ebx, 0x100000
setb cl
and cl, al
movzx eax, cl
jmp dword [eax*4 + 0x44def4]
push ebx
call fcn.0040c510
add esp, 4
push 0
push ebx
mov dword [esp + 0x74], eax
push eax
push dword [esp + 0x28]
call fcn.00445250
add esp, 0x10
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44defc]
xor ecx, ecx
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 4]
jmp 0x42dd28
add eax, 2
test dx, dx
je 0x42dd39
mov ebp, ecx
movzx edx, word [eax]
mov ecx, eax
cmp dx, 0x5c
je 0x42dd20
mov ecx, ebp
jmp 0x42dd20
xor eax, eax
test ebp, ebp
setne al
jmp dword [eax*4 + 0x44df04]
xor ebp, ebp
mov dword [esp + 0xc], 0
jmp dword [0x44df0c]
sub ebp, dword [esp + 0x10]
sar ebp, 1
lea eax, [ebp + 1]
mov dword [esp + 0xc], eax
not ebp
add ebp, ebx
jmp dword [0x44df0c]
push dword [esp + 8]
call fcn.0040c520
add esp, 4
jmp dword [0x44df34]
jmp dword [0x44df34]
push dword [esp + 0x6c]
call fcn.0040c520
add esp, 4
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x24], 0x2c2d2e2f
lea eax, [esp + 0x28]
mov byte [eax + 2], 0
mov word [eax], 0
xor eax, eax
xor edx, edx
nop
movzx esi, byte [esp + edx + 0x24]
mov edi, edx
xor edi, 0x4dfcc4a3
mov ecx, eax
and ecx, 8
sub ecx, edi
lea ebx, [ecx + 0x51158a9b]
lea edi, [ecx*2 - 0x5dd4eaca]
sub edi, ecx
add edi, 0x65
and edi, esi
or ebx, esi
xor ebx, edi
add bl, 0x28
mov byte [esp + edx + 0x24], bl
inc edx
add eax, 2
cmp edx, 7
jne 0x42ddb0
mov ecx, dword [0x451cfc]
test ecx, ecx
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
je 0x42de28
mov edx, dword [esp + 0x24]
xor esi, esi
mov edi, dword [0x451d00]
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42de20
inc esi
cmp ecx, esi
jne 0x42de10
jmp 0x42de28
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42de42
mov esi, ebx
xor ebp, ebp
jmp dword [0x44df3c]
push eax
call fcn.0040c520
add esp, 4
mov esi, ebx
jmp case.0x42db7e.1
push ebp
push 1
push dword [0x451d04]
push ecx
call fcn.00441c30
mov eax, dword [esp + 0x20]
add esp, 0x10
mov esi, ebx
xor ebp, ebp
jmp dword [0x44df3c]
mov ecx, dword [esp + 0x14]
and cl, 1
or cl, al
mov dword [esp + 0x14], ecx
jmp dword [0x44df1c]
mov dword [esp + 0x70], ebp
lea eax, [ebp + 0x1b]
push eax
call fcn.0040c510
add esp, 4
mov dword [esp + 8], eax
sub ebx, dword [esp + 0xc]
mov dword [esp], ebx
mov dword [esp + 0x24], 0x404e4067
mov dword [esp + 0x28], 0x4b514742
mov dword [esp + 0x2c], 0x32701740
mov dword [esp + 0x30], 0x7c3f2c34
mov dword [esp + 0x34], 0x263a3e12
mov dword [esp + 0x38], 0x78262030
mov dword [esp + 0x3c], 0x467679
mov ecx, 0xb5
mov edx, 0x4a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + ecx - 0x91]
mov ebx, ecx
or ebx, eax
not eax
or eax, edx
and eax, ebx
add al, 0x77
mov byte [esp + ecx - 0x91], al
inc ecx
dec edx
cmp ecx, 0xd1
jne 0x42dee0
mov eax, dword [esp + 0xc]
lea ecx, [esi + eax]
movzx eax, byte [esp + 0x24]
mov edx, dword [esp + 8]
test al, al
je 0x42df3b
lea ebx, [esp + 0x25]
mov edx, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edx], al
inc edx
movzx eax, byte [ebx]
inc ebx
test al, al
jne 0x42df30
mov byte [edx], 0
cmp dword [esp], 0
je 0x42dfaf
mov eax, dword [esp + 0xc]
lea ebp, [eax + edi]
mov ebx, dword [esp + 0x18]
mov eax, ebx
mov dword [esp + 0x68], ebp
sub eax, ebp
lea ebp, [ebx - 0xb]
test al, 1
je 0x42df76
mov ebx, dword [esp]
mov eax, ebx
not eax
lea ebx, [eax + ebx*2]
mov dword [esp], ebx
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx], al
inc edx
mov ebx, dword [esp + 4]
cmp ebp, dword [esp + 0x68]
mov ebp, dword [esp]
je 0x42dfb3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx], al
movzx eax, byte [ecx]
cmp al, 1
sbb ecx, 0xffffffff
mov byte [edx + 1], al
add edx, 2
add ebp, 0xfffffffe
jne 0x42df90
jmp 0x42dfb3
mov ebx, dword [esp + 4]
mov byte [edx], 0
mov ecx, dword [esp + 0x9c]
push dword [esp + 0x74]
push dword [esp + 0x70]
push dword [esp + 0x10]
call fcn.0040d1b0
mov ebp, dword [esp + 0x70]
jmp dword [0x44df18]
mov dword [esp + 0x70], ebp
lea eax, [ebp + 0x1b]
push eax
call fcn.0040c510
add esp, 4
mov dword [esp + 8], eax
sub ebx, dword [esp + 0xc]
mov dword [esp], ebx
mov dword [esp + 0x24], 0x404e4067
mov dword [esp + 0x28], 0x4b514742
mov dword [esp + 0x2c], 0x32701740
mov dword [esp + 0x30], 0x7c3f2c34
mov dword [esp + 0x34], 0x263a3e12
mov dword [esp + 0x38], 0x78262030
mov dword [esp + 0x3c], 0x467679
mov eax, 0xb5
mov edx, 0x4a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax - 0x91]
mov ebx, eax
or ebx, ecx
not ecx
or ecx, edx
and ecx, ebx
add cl, 0x77
mov byte [esp + eax - 0x91], cl
inc eax
dec edx
cmp eax, 0xd1
jne 0x42e040
mov eax, dword [esp + 0xc]
lea edx, [esi + eax]
movzx ecx, byte [esp + 0x24]
mov eax, dword [esp + 8]
test cl, cl
je 0x42e09b
lea ebx, [esp + 0x25]
mov eax, dword [esp + 8]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [ebx]
inc ebx
test cl, cl
jne 0x42e090
mov byte [eax], 0
cmp dword [esp], 0
je 0x42e111
mov ecx, dword [esp + 0xc]
lea ebp, [ecx + edi]
mov ebx, dword [esp + 0x18]
mov ecx, ebx
mov dword [esp + 0x68], ebp
sub ecx, ebp
lea ebp, [ebx - 0xb]
test cl, 1
je 0x42e0d8
mov ebx, dword [esp]
mov ecx, ebx
not ecx
lea ebx, [ecx + ebx*2]
mov dword [esp], ebx
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax], cl
inc eax
mov ebx, dword [esp + 4]
cmp ebp, dword [esp + 0x68]
mov ebp, dword [esp]
je 0x42e115
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax], cl
movzx ecx, byte [edx]
cmp cl, 1
sbb edx, 0xffffffff
mov byte [eax + 1], cl
add eax, 2
add ebp, 0xfffffffe
jne 0x42e0f0
jmp 0x42e115
mov ebx, dword [esp + 4]
mov byte [eax], 0
mov ecx, dword [esp + 0x9c]
push dword [esp + 0x74]
push dword [esp + 0x70]
push dword [esp + 0x10]
call fcn.0040d1b0
mov ebp, dword [esp + 0x70]
jmp case.0x42db7e.26
jmp dword [0x44df50]
mov esi, dword [esp + 0x7c]
jmp dword [0x44df54]
jmp dword [0x44df60]
push esi
call fcn.0040c520
add esp, 4
nop
push esi
call fcn.0040c520
add esp, 4
jmp dword [0x44df64]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x24], 0x2c2d2e2f
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x24]
mov esi, ecx
xor esi, 0x4dfcc4a3
mov edi, ebp
and edi, 8
sub edi, esi
lea ebx, [edi + 0x51158a9b]
lea esi, [edi*2 - 0x5dd4eaca]
sub esi, edi
add esi, 0x65
and esi, edx
or ebx, edx
xor ebx, esi
add bl, 0x28
mov byte [esp + ecx + 0x24], bl
inc ecx
add ebp, 2
cmp ecx, 7
jne 0x42e190
mov ecx, dword [0x451cfc]
test ecx, ecx
mov ebx, dword [esp + 0x80]
je 0x42e208
mov edx, dword [esp + 0x24]
xor esi, esi
mov edi, dword [0x451d00]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x7e776f1
je 0x42e200
inc esi
cmp ecx, esi
jne 0x42e1f0
jmp 0x42e208
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x42e214
mov eax, dword [esp + 0x14]
and al, 1
jmp dword [0x44df6c]
push eax
push 1
push dword [0x451d04]
push ecx
call fcn.00441c30
add esp, 0x10
mov eax, dword [esp + 0x14]
and al, 1
jmp dword [0x44df6c]
fld dword [edx]
mov bh, 0xd9
inc edx
add byte [edi - 0x1f], ch
inc edx
add bh, ah
fld dword [edx]
in eax, dx
fld dword [edx]
adc dl, bl
inc edx
add byte [eax], bh
fiadd dword [edx]
adc dl, bl
inc edx
add byte [esi - 0x1f], al
inc edx
add byte [eax - 0x26], dl
inc edx
add byte [eax - 0x25], dl
inc edx
add byte [eax - 0x1f], al
inc edx
add byte [ebp + 0x700042db], al
fild dword [edx]
jo 0x44de84
inc edx
invalid
fild dword [edx]
jo 0x44de84
inc edx
add byte [eax - 0x6fffbd25], dl
nop
fild dword [edx]
nop
fild dword [edx]
nop
fild dword [edx]
xchg edx, eax
fild dword [edx]
mov al, byte [0x700042db]
fiadd dword [edx]
mov al, 0xdb
inc edx
add byte [eax - 0x26], dh
inc edx
add al, al
fild dword [edx]
jo 0x44deac
inc edx
add byte [eax - 0x26], dh
inc edx
add byte [eax + 0x700042db], dh
fiadd dword [edx]
rcr bl, 0x42
add byte [eax - 38], dh
inc edx
add al, dl
fild dword [edx]
jo 0x44deb4
inc edx
add cl, ch
fild dword [edx]
jnp 0x44debe
inc edx
add byte [ebx - 0x24], bh
inc edx
add byte [ecx - 0x66ffbd24], cl
fadd qword [edx]
stosd dword es:[edi], eax
fadd qword [edx]
xchg edx, eax
fld qword [edx]
invalid