Function at 0x41dd29
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2d4
push ebx
push ebp
push esi
mov esi, ecx
mov dword [esp + 0x1c], edx
push edi
mov dword [esp + 0x44], esi
xor edx, edx
mov dword [esp + 0x14], 0x7f504f06
mov byte [esp + 0x18], 9
mov al, byte [esp + edx + 0x14]
xor al, 0x23
movzx eax, al
mov word [esp + edx*2 + 0x54], ax
inc edx
cmp edx, 5
jl 0x41dd4c
xor eax, eax
mov word [esp + 0x5e], ax
movzx eax, byte [0x42badc]
sub eax, 0x7a737b68
mov dword [0x42bad4], eax
lea eax, [esp + 0x54]
push esi
push eax
call fcn.00422def
pop ecx
pop ecx
movzx ecx, byte [0x42badc]
mov ebp, eax
imul ecx, ecx, 0x8d
mov dword [esp + 0x14], ebp
mov byte [0x42badc], cl
test ebp, ebp
je 0x41e16a
movzx eax, cl
mov edx, 0x54e1cc7b
imul ecx, eax, 0x71
add cl, 0x45
mov al, cl
and al, 0x76
mov byte [0x42badc], al
movzx eax, cl
xor ecx, ecx
or eax, 0xf8299420
inc ecx
add eax, 0x3a73ff78
mov dword [0x42bad4], eax
lea eax, [esp + 0x90]
push eax
push ebp
call fcn.00415084
call eax
movzx ecx, byte [0x42badc]
mov ebx, eax
or ecx, 0x318a499a
mov dword [esp + 0x40], ebx
mov dword [0x42bad4], ecx
mov edx, 0x17299c7b
xor ecx, ecx
inc ecx
call fcn.00415084
mov dword [esp + 0x48], eax
cmp ebx, 0xffffffff
je 0x41e152
mov cl, byte [0x42badc]
mov ebp, dword [esp + 0x20]
add cl, 0xa
movzx edx, cl
push 7
sub edx, 0x720a5d9a
mov word [esp + 0x20], 0x3535
mov dword [esp + 0x28], 0x4f665f18
mov word [esp + 0x2c], 0x5f18
mov byte [esp + 0x2e], 0x66
pop edi
mov dword [esp + 0x3c], 0xff
push 0x2e
pop eax
mov word [esp + 0x20], ax
xor eax, eax
mov word [esp + 0x22], ax
xor ecx, ecx
movzx eax, byte [esp + ecx + 0x1c]
sub ax, di
and ax, word [esp + 0x3c]
mov word [esp + ecx*2 + 0x4c], ax
inc ecx
cmp ecx, 2
jl 0x41de62
xor eax, eax
xor ecx, ecx
mov word [esp + 0x50], ax
movzx eax, byte [esp + ecx + 0x24]
add ax, 0xd
and ax, word [esp + 0x3c]
mov word [esp + ecx*2 + 0x60], ax
inc ecx
cmp ecx, edi
jl 0x41de83
xor eax, eax
mov word [esp + 0x6e], ax
mov al, dl
or al, 0xf9
sub edx, 0x18bca498
mov byte [0x42badc], al
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0xc0]
mov dword [0x42bad4], edx
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41e175
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00405af6
pop ecx
pop ecx
test eax, eax
je 0x41e175
movzx eax, byte [0x42badc]
and eax, 0xcae65193
mov dword [0x42bad4], eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x64]
push esi
push eax
call fcn.00422def
mov edx, dword [0x42bad4]
mov edi, eax
add esp, 0xc
lea ecx, [edx - 0x59]
mov byte [0x42badc], cl
test edi, edi
je 0x41e10b
or dl, 0x56
movzx eax, dl
imul eax, eax, 0xe
test byte [esp + 0x90], 0x10
mov byte [0x42badc], al
je 0x41e019
mov dword [esp + 0x2c], 0x81c5be77
xor ecx, ecx
mov word [esp + 0x30], 0xbe77
mov ebx, 0xff
mov byte [esp + 0x32], 0xc5
movzx eax, byte [esp + ecx + 0x2c]
sub ax, 0x52
and ax, bx
mov word [esp + ecx*2 + 0x70], ax
inc ecx
cmp ecx, 7
jl 0x41df66
xor eax, eax
xor dl, 0x8d
mov word [esp + 0x7e], ax
movzx eax, dl
or dl, 0x89
or eax, 0x29559753
mov byte [0x42badc], dl
mov dword [0x42bad4], eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x74]
push ebp
push eax
call fcn.00422def
mov bl, byte [0x42badc]
mov esi, eax
movzx ecx, bl
add esp, 0xc
or bl, 0xaa
imul edx, ecx, 0x137701f3
mov byte [0x42badc], bl
test esi, esi
je 0x41e013
movzx eax, bl
mov edx, esi
imul eax, eax, 0xd2
mov ecx, edi
mov byte [0x42badc], al
movzx eax, al
or eax, 0xc45714a4
mov dword [0x42bad4], eax
call fcn.0041dd29
movzx eax, byte [0x42badc]
or eax, 0xd6ca78ac
push esi
mov dword [0x42bad4], eax
call fcn.004056f0
mov edx, dword [0x42bad4]
pop ecx
mov ebx, dword [esp + 0x40]
jmp 0x41e022
movzx edx, al
and edx, 0xd1acb234
test byte [esp + 0x90], 0xa7
je 0x41e0ef
mov dword [esp + 0x34], 0x4c100f46
xor ecx, ecx
mov word [esp + 0x38], 0xf46
mov byte [esp + 0x3a], 0x10
mov al, byte [esp + ecx + 0x34]
xor al, 0x63
movzx eax, al
mov word [esp + ecx*2 + 0x80], ax
inc ecx
cmp ecx, 7
jl 0x41e046
xor eax, eax
xor dl, 0xc6
mov word [esp + 0x8e], ax
movzx eax, dl
imul eax, eax, 0x136ee9f9
mov byte [0x42badc], dl
or eax, 0xc6b4b528
mov dword [0x42bad4], eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0x84]
push ebp
push eax
call fcn.00422def
movzx ecx, byte [0x42bad4]
mov esi, eax
imul eax, ecx, 0x99
add esp, 0xc
mov byte [0x42badc], al
test esi, esi
je 0x41e0ef
movzx ecx, al
mov edx, esi
imul ecx, ecx, 0xef
movzx eax, cl
add cl, 0x49
sub eax, 0x13b04601
mov byte [0x42badc], cl
mov ecx, edi
mov dword [0x42bad4], eax
call fcn.0041dcc2
mov al, byte [0x42bad4]
xor al, 0x71
push esi
mov byte [0x42badc], al
call fcn.004056f0
pop ecx
movzx eax, byte [0x42badc]
add eax, 0x6ae6f104
push edi
mov dword [0x42bad4], eax
call fcn.004056f0
mov esi, dword [esp + 0x48]
pop ecx
push 7
pop edi
lea eax, [esp + 0x90]
push eax
push ebx
call dword [esp + 0x50]
mov edx, dword [0x42bad4]
test eax, eax
jne 0x41de51
mov al, dl
xor ecx, ecx
sub edx, 0x2872d473
or al, 0x86
mov dword [0x42bad4], edx
inc ecx
push ebx
mov edx, 0x83fbc401
mov byte [0x42badc], al
call fcn.00415084
call eax
mov ebp, dword [esp + 0x14]
movzx eax, byte [0x42badc]
xor eax, 0xc7efee32
push ebp
mov dword [0x42bad4], eax
call fcn.004056f0
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2d4
ret
movzx eax, byte [0x42badc]
add eax, 0x8eeb1353
mov dword [0x42bad4], eax
add al, 0x2d
mov byte [0x42badc], al
jmp 0x41e10e