Function at 0xdff3be
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3dc
push ebx
push esi
push edi
push 5
pop eax
mov dword [ebp - 0x1c0], ecx
lea edi, [ebp - 0x1c]
push 0x12
pop ecx
mov byte [ebp - 0x55], cl
mov esi, 0xdd1b94
mov ecx, eax
mov byte [ebp - 0x73], al
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x1ec], edx
mov dword [ebp - 0x78], 0x7e39adbe
mov byte [ebp - 0x74], 0x8e
movsb byte es:[edi], byte [esi]
xor edi, edi
mov dword [ebp - 0x72], 0x9b91b675
mov dword [ebp - 0x6e], 0xa60c7518
xor eax, eax
mov dword [ebp - 0x6a], 0x577c8059
mov dword [ebp - 0x66], 0x18fd7702
mov dword [ebp - 0x62], 0x9aadc7f0
mov dword [ebp - 0x5e], 0xc01e474
mov dword [ebp - 0x5a], 0xbbfe1d82
mov byte [ebp - 0x56], 0x77
mov dword [ebp - 0x54], 0x76073c49
mov dword [ebp - 0x50], 0x4fdc7ef2
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdff441
push 0x14
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
mov eax, esi
div ecx
movzx ecx, bl
push 0x14
movzx eax, byte [ebp + edx - 0x1c]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdff455
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x78]
mov byte [ebp + esi - 0x2ac], al
inc esi
cmp esi, 0x2c
jb 0xdff498
imul eax, dword [0xe1a7cc], 0xa59d4f07
lea edi, [ebp - 0x10]
mov esi, 0xdd1958
mov byte [ebp - 0x280], 0
mov dword [ebp - 4], 0xe57c1ae6
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x20], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdff512
xor esi, esi
push 0xb
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
pop ecx
mov eax, esi
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x10]
add eax, edi
add ecx, eax
movzx edi, cl
mov ecx, dword [ebp - 0x20]
mov al, byte [ebp + edi - 0x1bc]
or ecx, 0xfbbbfffe
mov byte [ebp + esi - 0x1bc], al
inc esi
mov dword [ebp - 0x20], ecx
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdff523
mov eax, ecx
xor ebx, ebx
xor edi, edi
xor esi, esi
xor eax, 0xf934d937
mov dword [ebp - 0x28], eax
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0xac], al
inc esi
cmp esi, 4
jb 0xdff57c
push 0x58
mov byte [ebp - 0xa8], 0
xor eax, eax
pop ecx
mov dword [ebp - 0x34], 0x54
mov dword [ebp - 0x30], 0x35
mov dword [ebp - 0x2c], 0xffffff20
add ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdff5ed
and dword [ebp - 0x24], 0
lea edi, [ebp - 0x18]
push 5
pop eax
mov dword [ebp - 0x4c], ecx
mov esi, 0xdd1748
mov ecx, eax
mov dword [ebp - 0x40], 0xeea9a03f
mov dword [ebp - 0x3c], 0xe570346b
xor eax, eax
mov dword [ebp - 0x38], 0x19736a44
mov dword [ebp - 0x34], 0x271dae1e
mov dword [ebp - 0x30], 0x16e9017a
mov dword [ebp - 0x2c], 0x20f5cb72
rep movsd dword es:[edi], dword [esi]
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdff639
mov edi, dword [ebp - 0x28]
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 0x13
mov eax, esi
imul edi, edi, 0x164d33b2
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x18]
add eax, dword [ebp - 0x24]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x24], ecx
mov al, byte [ebp + ecx - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + ecx - 0x1bc], bl
cmp esi, 0x100
jb 0xdff64d
and dword [ebp - 0x28], 0
xor ebx, ebx
xor esi, esi
add edi, 0xd6f14fd8
mov dword [ebp - 0x24], edi
mov edi, dword [ebp - 0x28]
lea eax, [ebx + 1]
sub dword [ebp - 0x20], 0x128a47b7
movzx ebx, al
mov cl, byte [ebp + ebx - 0x1bc]
movzx edx, cl
lea eax, [edx + edi]
movzx edi, al
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + ebx - 0x1bc], al
mov byte [ebp + edi - 0x1bc], cl
movzx eax, byte [ebp + ebx - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x40]
mov byte [ebp + esi - 0x260], al
inc esi
cmp esi, 0x18
jb 0xdff6a8
push 0x44
mov byte [ebp - 0x248], 0
mov edx, 0x14af
mov eax, 0xdd32b0
pop ecx
add edx, ecx
inc eax
cmp edx, 0x267a
ja 0xdff72a
movsx ecx, byte [eax]
test ecx, ecx
jne 0xdff713
mov ebx, dword [ebp - 0x24]
jmp 0xdff733
mov ebx, dword [ebp - 0x24]
and ebx, 0x3ad077fc
xor dword [ebp - 0x20], 0xd046aac7
lea edi, [ebp - 0x34]
mov esi, 0xdd1aec
mov dword [ebp - 0x1c], 0xf973e34d
mov dword [ebp - 0x18], 0x660ffce5
mov dword [ebp - 0x14], 0x4bd408ef
mov dword [ebp - 0x10], 0xc5f18fd2
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xc], 0x832b85af
mov dword [ebp - 8], 0x47fdde1c
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdff773
xor esi, esi
mov dl, byte [ebp + esi - 0x1bc]
mov eax, esi
and eax, 7
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], dl
cmp esi, 0x100
jb 0xdff784
xor edx, edx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
push 0x61
mov cl, byte [ebp + edi - 0x1bc]
movzx eax, cl
mov dword [ebp - 0x28], eax
add eax, edx
movzx edx, al
mov dword [ebp - 0x24], edx
mov al, byte [ebp + edx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov eax, 0xdd3460
mov byte [ebp + edx - 0x1bc], cl
mov edx, 0x1fb1
pop ecx
add edx, ecx
inc eax
cmp edx, 0xe82
ja 0xdff814
movsx ecx, byte [eax]
test ecx, ecx
jne 0xdff800
jmp 0xdff81b
imul ebx, dword [ebp - 0x20], 0xdb99e667
add ebx, 0x3a2e558e
or ebx, 0x887debfc
push ecx
mov edx, ebx
call fcn.00dfb572
movzx eax, byte [ebp + edi - 0x1bc]
add eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
movzx eax, al
pop ecx
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x27c], al
inc esi
cmp esi, 0x18
jb 0xdff7c3
mov esi, 0xdd30ec
mov byte [ebp - 0x264], 0
lea edi, [ebp - 0x34]
mov dword [ebp - 0x1c], 0xbe3ff9c3
mov dword [ebp - 0x18], 0x93315b6e
mov dword [ebp - 0x14], 0xb68bf436
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x10], 0xd6b42099
mov dword [ebp - 0xc], 0x6504afe9
mov dword [ebp - 8], 0xdc40a35b
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdff89f
push 0xa
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
mov eax, esi
div ecx
movzx ecx, bl
push 0xa
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdff8b3
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x20c], al
inc esi
cmp esi, 0x18
jb 0xdff8f6
push 0x18
mov byte [ebp - 0x1f4], 0
xor eax, eax
pop ecx
mov dword [ebp - 0x34], 0x1d
mov dword [ebp - 0x30], 0x4c
mov dword [ebp - 0x2c], 0xffffff80
add ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdff967
mov esi, 0xdd30f8
mov dword [ebp - 0x1d0], ecx
lea edi, [ebp - 0x34]
mov dword [ebp - 0x1c], 0xbdfef58c
push 9
mov dword [ebp - 0x18], 0x4329847b
mov ecx, 0xdd3460
movsd dword es:[edi], dword [esi]
mov al, 0x61
mov dword [ebp - 0x14], 0x8398d22e
mov dword [ebp - 0x10], 0x368c371c
mov dword [ebp - 0xc], 0x91b47d4d
movsd dword es:[edi], dword [esi]
mov dword [ebp - 8], 0x42543539
pop edx
movsw word es:[edi], word [esi]
sub al, 0x30
cmp al, dl
ja 0xdff9c6
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdff9b7
jmp 0xdff9cd
and dword [ebp - 0x20], 0x5a19be9c
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdff9d1
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 9
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdff9e2
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x228], al
inc esi
cmp esi, 0x18
jb 0xdffa25
mov esi, 0xdd10b8
mov byte [ebp - 0x210], 0
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 0xacbbcb93
mov ecx, 0xdd3460
mov al, 0x61
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
sub al, 0x30
cmp al, 9
ja 0xdffaa9
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdffa97
mov eax, dword [ebp - 0x20]
jmp 0xdffab1
mov eax, dword [ebp - 0x20]
or eax, 0x4d06a4ed
lea ecx, [eax - 0x2e758048]
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdffab9
or ecx, 0xf9180db8
xor esi, esi
mov dword [ebp - 0x28], ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 0xb
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x10]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdffad3
mov ebx, dword [ebp - 0x28]
xor ecx, ecx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp - 0x41], al
movzx eax, al
mov dword [ebp - 0x24], eax
add eax, ecx
movzx eax, al
mov ecx, 0xdd3460
mov dword [ebp - 0x28], eax
mov al, 0x61
sub al, 0x30
cmp al, 9
ja 0xdffb4d
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdffb3e
jmp 0xdffb53
sub ebx, 0x798a05b7
lea eax, [ebx - 0x11632251]
mov dword [ebp - 0x20], eax
call fcn.00dfb6e9
mov ecx, dword [ebp - 0x28]
mov al, byte [ebp + ecx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov al, byte [ebp - 0x41]
mov byte [ebp + ecx - 0x1bc], al
movzx eax, byte [ebp + edi - 0x1bc]
add eax, dword [ebp - 0x24]
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0xb4], al
inc esi
cmp esi, 4
jb 0xdffb19
push 0x24
mov byte [ebp - 0xb0], 0
xor eax, eax
pop ecx
mov dword [ebp - 0x30], 3
mov dword [ebp - 0x2c], 0xffffffd9
add ecx, dword [ebp + eax*4 - 0x30]
inc eax
cmp eax, 2
jl 0xdffbc0
push 0x20
mov dword [ebp - 0x1e4], ecx
pop ecx
mov edx, dword [ebp - 0x20]
mov ebx, edx
push 0x50
and ebx, 0xe6793a59
mov dword [ebp - 0x30], 0x55
pop esi
mov dword [ebp - 0x24], ebx
xor eax, eax
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x2c], 0xffffff3b
add ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdffbf7
push 0x10
mov dword [ebp - 0x1e0], ecx
xor eax, eax
pop ecx
push 0x14
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], esi
pop esi
push 5
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], 0x16
mov dword [ebp - 8], 0xffffff44
pop edi
sub ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, edi
jl 0xdffc29
mov dword [ebp - 0x1dc], ecx
xor eax, eax
mov ecx, 0x580
mov dword [ebp - 0x34], 0x1b
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x2c], 0x4d1
sub ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdffc50
push 9
mov dword [ebp - 0x1d8], ecx
mov al, 0x61
mov ecx, 0xdd3460
pop ebx
sub al, 0x30
cmp al, bl
ja 0xdffc79
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdffc6a
jmp 0xdffc83
mov eax, edx
xor eax, 0xdbec5a1f
mov dword [ebp - 0x24], eax
call fcn.00dfb5df
xor ecx, ecx
mov dword [ebp - 0x18], 0x60
mov dword [ebp - 0x14], 0x54
xor eax, eax
mov dword [ebp - 0x10], 1
mov dword [ebp - 0xc], 0x43
mov dword [ebp - 8], 0xffffff08
sub ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, edi
jl 0xdffcaf
mov esi, 0xdd228c
mov dword [ebp - 0x1d4], ecx
lea edi, [ebp - 0x34]
mov dword [ebp - 0x1c], 0x22cfd560
mov dword [ebp - 0x18], 0x3a07f3e0
mov dword [ebp - 0x14], 0x6b3d884d
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x10], bl
mov dword [ebp - 0xf], 0xccf5485
mov dword [ebp - 0xb], 0xdbd57998
movsd dword es:[edi], dword [esi]
mov word [ebp - 7], 0x3c4
mov byte [ebp - 5], 7
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdffcff
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 0xa
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x34]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdffd10
mov edx, dword [ebp - 0x24]
mov eax, edx
and eax, 0x1338f9ab
mov dword [ebp - 0x20], eax
push ecx
add edx, 0xcd5cd809
call fcn.00dfb572
xor ebx, ebx
xor edi, edi
pop ecx
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0x1c]
mov byte [ebp + esi - 0x244], al
inc esi
cmp esi, 0x18
jb 0xdffd6d
mov eax, dword [ebp - 0x20]
lea edi, [ebp - 0x70]
push 8
pop ecx
mov esi, 0xdd3104
mov byte [ebp - 0x22c], 0
rep movsd dword es:[edi], dword [esi]
or eax, 0x3e592f64
mov dword [ebp - 4], 0x2bcefede
mov dword [ebp - 0x24], eax
movsw word es:[edi], word [esi]
xor edi, edi
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdffde9
push 0x21
xor esi, esi
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
mov eax, esi
div ecx
movzx ecx, bl
push 0x21
movzx eax, byte [ebp + edx - 0x70]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdffdfd
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0xbc], al
inc esi
cmp esi, 4
jb 0xdffe40
xor ecx, ecx
mov byte [ebp - 0xb8], 0
mov dword [ebp - 0x34], 0x32
xor eax, eax
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x2c], 0xffffffc7
sub ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdffeb0
mov esi, 0xdd3128
mov dword [ebp - 0x1e8], ecx
lea edi, [ebp - 0x30]
mov dword [ebp - 0x1c], 0x6f3f4a27
push 9
pop eax
movsd dword es:[edi], dword [esi]
push 6
pop ecx
mov byte [ebp - 0x18], al
movsw word es:[edi], word [esi]
mov byte [ebp - 0xc], al
mov dword [ebp - 0x17], 0x774df16
mov dword [ebp - 0x13], 0xc1468bbf
movsb byte es:[edi], byte [esi]
xor edi, edi
mov word [ebp - 0xf], 0x3eb
mov byte [ebp - 0xd], cl
xor eax, eax
mov dword [ebp - 0xb], 0x41521a5a
mov word [ebp - 7], 0xff60
mov byte [ebp - 5], 0x80
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xdfff0b
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
mov eax, esi
div ecx
movzx ecx, bl
push 6
movzx eax, byte [ebp + edx - 0x30]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xdfff1c
xor ebx, ebx
xor esi, esi
xor edi, edi
push 0x61
mov edx, 0xdb3
mov eax, 0xdd3460
pop ecx
add edx, ecx
inc eax
cmp edx, 0x236
ja 0xdfff86
movsx ecx, byte [eax]
test ecx, ecx
jne 0xdfff6c
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x24]
jmp 0xdfff8f
mov edx, dword [ebp - 0x20]
imul eax, edx, 0xa1cd6407
add edx, 0x4b35f102
add eax, 0x463b6ed0
mov ecx, 0xdd32b0
mov dword [ebp - 0x24], eax
lea eax, [esi + 1]
movzx esi, al
mov al, 0x44
sub al, 0x30
cmp al, 9
ja 0xdfffb9
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfffaa
jmp 0xdfffc2
mov edx, dword [ebp - 0x24]
or edx, 0x527d8d10
mov cl, byte [ebp + esi - 0x1bc]
xor edx, 0x623e4571
mov dword [ebp - 0x20], edx
mov dword [0xe1a8b0], edx
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + esi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + edi - 0x1c]
mov byte [ebp + edi - 0x68], al
inc edi
cmp edi, 0x18
jb 0xdfff5f
mov esi, 0xdd3130
mov byte [ebp - 0x50], 0
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 0xe4d0ee33
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
xor edi, edi
call fcn.00dfb6e9
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xe0003f
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 0x12
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x18]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
inc esi
mov byte [ebp + edi - 0x1bc], bl
cmp esi, 0x100
jb 0xe00050
imul eax, dword [ebp - 0x20], 0x8be17e58
xor ebx, ebx
xor edi, edi
xor esi, esi
xor eax, 0x4e402aa
mov dword [0xe1a7cc], eax
lea eax, [edi + 1]
mov edx, 0x9c1
movzx edi, al
push 0x61
mov cl, byte [ebp + edi - 0x1bc]
movzx eax, cl
mov dword [ebp - 0x28], eax
add eax, ebx
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov eax, 0xdd3460
mov byte [ebp + ebx - 0x1bc], cl
pop ecx
add edx, ecx
inc eax
cmp edx, 0xaf1
ja 0xe000f2
movsx ecx, byte [eax]
test ecx, ecx
jne 0xe000de
jmp 0xe000f7
call fcn.00dfb5df
movzx eax, byte [ebp + edi - 0x1bc]
add eax, dword [ebp - 0x28]
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0x30], al
inc esi
cmp esi, 4
jb 0xe000a4
push 0xb
pop eax
xor ecx, ecx
mov dword [ebp - 0xc], eax
mov byte [ebp - 0x2c], 0
xor eax, eax
mov dword [ebp - 0x10], 0x10
mov dword [ebp - 8], 0xffffffe5
sub ecx, dword [ebp + eax*4 - 0x10]
inc eax
cmp eax, 3
jl 0xe00136
push 0x12
pop eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0x23
mov dword [ebp - 0xc], 0x11
mov dword [ebp - 8], 0xffffff85
movups xmm1, xmmword [ebp - 0x14]
mov dword [ebp - 0x20], ecx
xor ecx, ecx
mov dword [ebp - 0x18], 0x25
movaps xmm0, xmm1
mov dword [ebp - 0x14], 0x3b
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x10], 0x19
movups xmm0, xmm1
mov dword [ebp - 0xc], 0xf
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 8], 0xffffff78
movd eax, xmm1
add eax, 0x35
mov dword [ebp - 0x1c4], eax
xor eax, eax
sub ecx, dword [ebp + eax*4 - 0x18]
inc eax
cmp eax, 5
jl 0xe001ae
mov dword [ebp - 0x14], 0x22
xorps xmm1, xmm1
mov dword [ebp - 0x10], 0x3e
mov dword [ebp - 0xc], 0x20
mov dword [ebp - 8], 0xffffff80
movups xmm0, xmmword [ebp - 0x14]
mov dword [ebp - 0x1c8], ecx
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd dword [ebp - 0x1cc], xmm1
call fcn.00dfeb01
mov ebx, eax
lea ecx, [ebp - 0xac]
push ebx
mov dword [ebp - 0x28], ebx
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x2ac]
call fcn.00dee9ca
call eax
mov ecx, dword [ebp - 0x4c]
neg ecx
cmp eax, ecx
jne 0xe004c3
mov esi, 0xdd1908
mov byte [ebp - 0xa4], 0x99
lea edi, [ebp - 0x14]
mov dword [ebp - 0xa2], 0xf592c7a9
push 0x12
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0xa3], al
push 9
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x96], al
mov dword [ebp - 0x9e], 0x3f8833f2
mov dword [ebp - 0x9a], 0xbb5ca52f
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x95], 0xff3e1dc6
mov dword [ebp - 0x91], 0x47b6f586
mov dword [ebp - 0x8d], 0xe661f5aa
movsw word es:[edi], word [esi]
mov dword [ebp - 0x89], 0x46871f18
mov dword [ebp - 0x85], 0xc6a6c316
mov dword [ebp - 0x81], 0x15c41cea
movsb byte es:[edi], byte [esi]
xor edi, edi
mov dword [ebp - 0x7d], 0x75c62125
mov byte [ebp - 0x79], 0x1d
xor eax, eax
mov byte [ebp + eax - 0x1bc], al
inc eax
cmp eax, 0x100
jb 0xe002c7
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x1bc]
push 0xe
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x14]
add eax, edi
add ecx, eax
movzx edi, cl
mov ecx, dword [0xe1a8b0]
xor ecx, 0x2d876a2
mov dword [0xe1a8b0], ecx
mov al, byte [ebp + edi - 0x1bc]
mov byte [ebp + esi - 0x1bc], al
imul eax, ecx, 0x28f382f1
inc esi
mov byte [ebp + edi - 0x1bc], bl
mov dword [ebp - 0x24], eax
cmp esi, 0x100
jb 0xe002d8
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1bc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1bc]
mov byte [ebp + edi - 0x1bc], al
mov byte [ebp + ebx - 0x1bc], cl
movzx eax, byte [ebp + edi - 0x1bc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1bc]
xor al, byte [ebp + esi - 0xa4]
mov byte [ebp + esi - 0x2dc], al
inc esi
cmp esi, 0x2c
jb 0xe00336
mov eax, dword [0xdd3144]
xor edi, edi
mov dword [ebp - 0x4c], eax
mov ax, word [0xdd3148]
mov word [ebp - 0x48], ax
xor eax, eax
mov byte [ebp - 0x2b0], 0
mov dword [ebp - 4], 0x22b485a8
mov byte [ebp + eax - 0x3dc], al
inc eax
cmp eax, 0x100
jb 0xe003ad
xor esi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x3dc]
push 5
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x4c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x3dc]
mov byte [ebp + esi - 0x3dc], al
inc esi
mov byte [ebp + edi - 0x3dc], bl
cmp esi, 0x100
jb 0xe003be
xor ebx, ebx
xor edi, edi
xor esi, esi
lea eax, [edi + 1]
and dword [ebp - 0x24], 0xd3fd14f8
movzx edi, al
mov cl, byte [ebp + edi - 0x3dc]
movzx edx, cl
lea eax, [ebx + edx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x3dc]
mov byte [ebp + edi - 0x3dc], al
mov byte [ebp + ebx - 0x3dc], cl
movzx eax, byte [ebp + edi - 0x3dc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x3dc]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0x4c], al
inc esi
cmp esi, 4
jb 0xe00401
mov eax, dword [0xe1a8b0]
lea ecx, [ebp - 0x4c]
mov ebx, dword [ebp - 0x28]
add eax, 0x4257c11
mov dword [ebp - 0x14], 6
mov dword [ebp - 0x10], 0x29
mov dword [ebp - 0xc], 0x39
mov dword [ebp - 8], 0xffffff94
movups xmm1, xmmword [ebp - 0x14]
mov dword [0xe1a7cc], eax
mov byte [ebp - 0x48], 0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 4
push eax
push ebx
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x2dc]
call fcn.00dee9ca
call eax
lea ecx, [ebp - 0x260]
call fcn.00e0523e
lea ecx, [ebp - 0x27c]
mov esi, eax
call fcn.00e0523e
lea ecx, [ebp - 0x20c]
mov edi, eax
call fcn.00e0523e
mov edx, esi
mov dword [ebp - 4], eax
mov ecx, ebx
call fcn.00e05d45
mov eax, dword [ebp - 0x1d0]
mov ecx, ebx
cmp dword [ebp + 8], eax
mov edx, dword [ebp - 4]
cmove edx, edi
call fcn.00e05d45
movzx eax, byte [0xe1a850]
mov edx, 0x610
mov ecx, 0xe1a850
jmp 0xe0052f
add edx, eax
inc ecx
cmp edx, 0x8ec
ja 0xe0065c
movzx eax, byte [ecx]
test eax, eax
jne 0xe0051d
mov eax, dword [0xe1a7cc]
xor eax, 0xe82a0877
mov dword [0xe1a7cc], eax
imul eax, dword [0xe1a8b0], 0x881e2bae
mov dword [0xe1a8b0], eax
call fcn.00dfb84c
push dword [ebp - 0x1d4]
lea ecx, [ebp - 0xb4]
push dword [ebp - 0x1d8]
push dword [ebp - 0x1dc]
push dword [ebp - 0x1e0]
push dword [ebp - 0x1e4]
push 0x40000000
push ebx
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x228]
call fcn.00dee9ca
call eax
mov dword [ebp + 8], eax
cmp eax, 2
je 0xe005e7
push dword [ebp - 0x1e8]
lea ecx, [ebp - 0x1f0]
push ecx
push dword [ebp - 0x1ec]
lea ecx, [ebp - 0xbc]
push dword [ebp - 0x1c0]
push eax
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x244]
call fcn.00dee9ca
call eax
push dword [ebp + 8]
lea ecx, [ebp - 0x30]
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x68]
call fcn.00dee9ca
call eax
mov ecx, esi
call fcn.00e05897
push eax
push dword [ebp - 0x20]
push esi
call fcn.00e05117
mov ecx, edi
call fcn.00e05897
push eax
push dword [ebp - 0x1c4]
push edi
call fcn.00e05117
mov ecx, dword [ebp - 4]
call fcn.00e05897
push eax
push dword [ebp - 0x1c8]
push dword [ebp - 4]
call fcn.00e05117
mov ecx, ebx
call fcn.00e05897
push eax
push dword [ebp - 0x1cc]
push ebx
call fcn.00e05117
add esp, 0x30
mov ecx, esi
call fcn.00dee98d
mov ecx, edi
call fcn.00dee98d
mov ecx, dword [ebp - 4]
call fcn.00dee98d
mov ecx, ebx
call fcn.00dee98d
pop edi
pop esi
pop ebx
leave
ret
call fcn.00dfb84c
mov eax, dword [0xe1a7cc]
sub eax, 0xe17f275
jmp 0xe00538