Function at 0xdfd32b
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x274
mov dword [ebp - 0x1c], 0x27
xorps xmm1, xmm1
mov dword [ebp - 0x18], 0x21
xor eax, eax
xorps xmm2, xmm2
mov dword [ebp - 0x14], 0x1a
mov dword [ebp - 0x10], 0xffffff9e
movups xmm0, xmmword [ebp - 0x1c]
push ebx
push esi
psubd xmm1, xmm0
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
push edi
movd dword [ebp - 0xb0], xmm1
cmp byte [0xe1a6d4], al
je 0xdfd3a0
inc eax
cmp eax, 0x2401
jg 0xdfd418
cmp byte [eax + 0xe1a6d4], 0
jne 0xdfd38b
mov ebx, dword [0xe1a878]
and ebx, 0x5788e5b0
sub ebx, 0x23b44f19
call fcn.00dfb6e9
movzx esi, byte [0xe1a740]
mov edx, 0x2258
mov word [ebp - 0x40], 0xd040
mov ecx, esi
mov byte [ebp - 0x3e], 0xe6
mov dword [ebp - 0x3c], 0x7697198c
mov dword [ebp - 0x38], 0xf7549865
mov dword [ebp - 0x34], 0x143346bf
mov dword [ebp - 0x30], 0x9330957e
mov dword [ebp - 0x2c], 0xa37d28e6
mov dword [ebp - 0x50], esi
push 0xe
pop eax
mov byte [ebp - 0x3d], al
mov eax, 0xe1a740
test esi, esi
je 0xdfd42f
add edx, ecx
inc eax
cmp edx, 0x15b3
ja 0xdfd424
movzx ecx, byte [eax]
test ecx, ecx
jne 0xdfd404
jmp 0xdfd434
imul ebx, dword [0xe1a878], 0xce875ab8
jmp 0xdfd3a6
call fcn.00dfb5df
add ebx, 0x6fa273e1
call fcn.00dfb84c
add ebx, 0x76dae0ae
xor ebx, 0x81503fa
push ecx
mov edx, ebx
call fcn.00dfb572
mov esi, 0xdd1e3c
lea edi, [ebp - 0x20]
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
lea esi, [ebx - 0x19787de3]
or esi, 0x51139b6b
xor ebx, ebx
mov eax, ebx
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfd466
movzx eax, byte [0xe1a6d4]
and esi, 0x682ea1cb
mov edi, ebx
mov dword [ebp - 0x28], eax
mov cl, byte [ebp + edi - 0x1d4]
mov eax, edi
and eax, 0xf
mov byte [ebp - 1], cl
movzx ecx, cl
mov edx, 0x330
movzx eax, byte [ebp + eax - 0x20]
add eax, ebx
add ecx, eax
movzx ebx, cl
mov ecx, dword [ebp - 0x28]
mov al, byte [ebp + ebx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
mov eax, 0xe1a6d4
jmp 0xdfd4d0
add edx, ecx
inc eax
cmp edx, 0x1d19
ja 0xdfd4d6
movzx ecx, byte [eax]
test ecx, ecx
jne 0xdfd4c2
jmp 0xdfd4dc
or esi, 0xaf779fdc
add esi, 0x23a81ca1
and esi, 0x95613d75
call fcn.00dfb5df
mov al, byte [ebp - 1]
inc edi
mov byte [ebp + ebx - 0x1d4], al
cmp edi, 0x100
jb 0xdfd487
xor ebx, ebx
mov dword [ebp - 0x4c], ebx
mov edi, ebx
mov ecx, 0xdd34b0
mov al, 0x74
sub al, 0x30
cmp al, 9
ja 0xdfd51d
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfd50e
jmp 0xdfd523
or esi, 0x8c5556d
and esi, 0xc0e77751
call fcn.00dfb6e9
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 0x4c]
mov cl, byte [ebp + ebx - 0x1d4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x4c], eax
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp + ebx - 0x1d4], al
mov eax, dword [ebp - 0x4c]
mov byte [ebp + eax - 0x1d4], cl
movzx eax, byte [ebp + ebx - 0x1d4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1d4]
xor al, byte [ebp + edi - 0x40]
mov byte [ebp + edi - 0x1f0], al
inc edi
cmp edi, 0x18
jb 0xdfd507
push 0xb
pop eax
mov byte [ebp - 0x89], al
xor ebx, ebx
push 0xe
pop eax
mov byte [ebp - 0x62], al
mov edi, ebx
push 0xc
pop eax
mov dword [ebp - 0x5c], eax
mov byte [ebp - 0x61], al
mov eax, dword [0xdd2afc]
mov dword [ebp - 0x9c], eax
mov ax, word [0xdd2b00]
mov word [ebp - 0x98], ax
mov eax, ebx
mov dword [ebp - 8], esi
mov byte [ebp - 0x1d8], bl
mov word [ebp - 0x8c], 0x860a
mov byte [ebp - 0x8a], 0x65
mov dword [ebp - 0x88], 0xb9a65eee
mov dword [ebp - 0x84], 0xe3403292
mov dword [ebp - 0x80], 0x9abfdaa5
mov dword [ebp - 0x7c], 0xde552cf5
mov dword [ebp - 0x78], 0x1a71683b
mov dword [ebp - 0x74], 0x486c2607
mov dword [ebp - 0x70], 0xe19f612e
mov dword [ebp - 0x6c], 0x5d63494a
mov dword [ebp - 0x68], 0xbc1e8cf8
mov word [ebp - 0x64], 0x6178
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfd620
push 5
mov esi, ebx
pop ecx
xor edx, edx
mov bl, byte [ebp + esi - 0x1d4]
mov eax, esi
div ecx
movzx ecx, bl
push 5
movzx eax, byte [ebp + edx - 0x9c]
add eax, edi
add ecx, eax
movzx edi, cl
pop ecx
mov al, byte [ebp + edi - 0x1d4]
mov byte [ebp + esi - 0x1d4], al
inc esi
mov byte [ebp + edi - 0x1d4], bl
cmp esi, 0x100
jb 0xdfd634
xor ebx, ebx
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1d4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
mov byte [ebp + ebx - 0x1d4], cl
movzx eax, byte [ebp + edi - 0x1d4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1d4]
xor al, byte [ebp + esi - 0x8c]
mov byte [ebp + esi - 0x274], al
inc esi
cmp esi, 0x2c
jb 0xdfd67a
mov esi, 0xdd30ac
mov dword [ebp - 0x4c], 0x17dd2229
lea edi, [ebp - 0x38]
xor ebx, ebx
mov eax, ebx
mov byte [ebp - 0x248], bl
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]
cmp byte [0xe1a740], al
je 0xdfd708
inc eax
cmp eax, 0x1d64
jl 0xdfd885
cmp byte [eax + 0xe1a740], bl
jne 0xdfd6f4
mov esi, dword [ebp - 8]
and esi, 0x171f002
mov eax, ebx
mov dword [ebp - 8], esi
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfd716
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x1d4]
push 0xe
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x38]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
inc edi
mov byte [ebp + esi - 0x1d4], bl
cmp edi, 0x100
jb 0xdfd729
xor ebx, ebx
and dword [ebp - 8], 0x178d7dd5
mov dword [ebp - 0xc], ebx
mov edi, ebx
mov esi, ebx
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp - 0xc]
mov cl, byte [ebp + esi - 0x1d4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp + esi - 0x1d4], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1d4], cl
movzx eax, byte [ebp + esi - 0x1d4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1d4]
xor al, byte [ebp + edi - 0x4c]
mov byte [ebp + edi - 0x9c], al
inc edi
cmp edi, 4
jb 0xdfd776
mov esi, dword [ebp - 8]
mov ecx, ebx
mov byte [ebp - 0x98], bl
mov eax, ebx
mov dword [ebp - 0x34], 7
mov dword [ebp - 0x30], 0x4f
mov dword [ebp - 0x2c], 0xffffffaa
sub ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdfd7f0
push 0x11
mov dword [ebp - 0xcc], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0x34], 0x3a
mov dword [ebp - 0x30], 0x59
mov dword [ebp - 0x2c], 0xffffff5c
add ecx, dword [ebp + eax*4 - 0x34]
and esi, 0x54c2683a
inc eax
cmp eax, 3
jl 0xdfd81a
push 5
mov dword [ebp - 0xc8], ecx
mov eax, ebx
mov ecx, ebx
mov dword [ebp - 0x20], 0x24
mov dword [ebp - 0x1c], 0x5f
mov dword [ebp - 0x18], 0x45
mov dword [ebp - 0x14], 0x1d
mov dword [ebp - 0x10], 0xffffff1b
pop edx
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, edx
jl 0xdfd85a
mov eax, ebx
mov dword [ebp - 0xc4], ecx
cmp byte [0xe1a6d4], al
je 0xdfd89e
inc eax
cmp eax, 0xf0b
jg 0xdfd893
cmp byte [eax + 0xe1a6d4], bl
jne 0xdfd873
jmp 0xdfd89e
mov esi, dword [ebp - 8]
sub esi, 0x3544ec69
jmp 0xdfd70b
call fcn.00dfb6e9
xor esi, 0xa092ac7c
push 0x33
pop ecx
mov dword [ebp - 0x18], ecx
or esi, 0xe5b22f97
mov dword [ebp - 0x1c], 0x36
add esi, 0x13dedcdb
mov dword [ebp - 0x14], 0x20
and esi, 0x981b9ba2
mov dword [ebp - 0x10], 0xffffff45
mov edx, 0x1eed
movups xmm1, xmmword [ebp - 0x1c]
push 0xb
mov edi, dword [ebp - 0x50]
paddd xmm1, xmm2
mov dword [ebp - 0x18], ecx
movaps xmm0, xmm1
mov dword [ebp - 0x10], 0xffffff74
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x4c], 2
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x32
mov dword [ebp - 0xc0], eax
pop eax
push 0x27
pop ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], ecx
movups xmm1, xmmword [ebp - 0x1c]
paddd xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, ecx
mov ecx, edi
mov dword [ebp - 0xbc], eax
mov eax, 0xe1a740
test edi, edi
je 0xdfd977
add edx, ecx
inc eax
cmp edx, 0xb8d
ja 0xdfd968
movzx ecx, byte [eax]
test ecx, ecx
jne 0xdfd954
jmp 0xdfd977
push ecx
mov edx, esi
call fcn.00dfb572
pop ecx
imul esi, esi, 0xa436b8d1
mov ecx, dword [ebp - 0x4c]
xor esi, 0xbddffefb
and esi, 0xc6a625cf
mov dword [ebp - 0x34], 0x21
mov dword [ebp - 0x30], 0x22
or esi, 0x8404c9
mov dword [ebp - 0x2c], 0xffffffbb
mov eax, ebx
add ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdfd9a3
push 0x32
mov dword [ebp - 0x4c], ecx
mov eax, ebx
pop ecx
mov dword [ebp - 0x30], 0x38
mov dword [ebp - 0x2c], 0xffffff96
add ecx, dword [ebp + eax*4 - 0x30]
inc eax
cmp eax, 2
jl 0xdfd9c3
push 5
mov dword [ebp - 0xa0], ecx
mov eax, ebx
mov ecx, 0x3800
mov dword [ebp - 0x20], 0x33
mov dword [ebp - 0x1c], 0x5e
mov dword [ebp - 0x18], 0x26
mov dword [ebp - 0x14], 0x5a
mov dword [ebp - 0x10], 0x32ef
pop edi
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, edi
jl 0xdfda00
push 0x53
pop edx
mov dword [ebp - 0x1c], 0x3d
sub esi, 0x254cfe0d
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], 0x30
mov dword [ebp - 0x10], 0x326
movups xmm1, xmmword [ebp - 0x1c]
mov dword [ebp - 0xa4], ecx
mov ecx, 0xe38
mov dword [ebp - 0x20], 0x52
paddd xmm1, xmm2
mov dword [ebp - 0x1c], 0x29
movaps xmm0, xmm1
mov dword [ebp - 0x18], 0x42
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x14], 0x46
movups xmm0, xmm1
mov dword [ebp - 0x10], 0xc31
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x1a
mov dword [ebp - 0x90], eax
mov eax, ebx
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, edi
jl 0xdfda87
mov dword [ebp - 0xa8], ecx
mov eax, ebx
mov ecx, 0xb2c
mov dword [ebp - 0x34], 0x40
mov dword [ebp - 0x30], 0xd
mov dword [ebp - 0x2c], 0x9db
sub ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdfdab2
mov dword [ebp - 0x1c], 0x5f
mov dword [ebp - 0x18], 0x1b
mov dword [ebp - 0x14], 0x34
mov dword [ebp - 0x10], 3
movups xmm1, xmmword [ebp - 0x1c]
push 0x74
mov dword [ebp - 0xac], ecx
paddd xmm1, xmm2
mov dword [ebp - 0x24], 0x39f71779
movaps xmm0, xmm1
mov dword [ebp - 0x20], 0xdb10d058
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x1c], 0xe36d69bc
movups xmm0, xmm1
mov dword [ebp - 0x18], 0xdf03b418
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x14], 0xbbd58685
movd eax, xmm1
mov dword [ebp - 0x10], 0x7a6e2a95
mov dword [ebp - 0xc], ebx
add eax, edx
mov edx, 0x8f0
mov dword [ebp - 0x94], eax
mov eax, dword [0xdd30bc]
mov dword [ebp - 0x58], eax
mov ax, word [0xdd30c0]
mov word [ebp - 0x54], ax
mov eax, 0xdd34b0
pop ecx
add edx, ecx
inc eax
cmp edx, 0x1d3
ja 0xdfdb70
movsx ecx, byte [eax]
test ecx, ecx
jne 0xdfdb56
add esi, 0x4b2b6bd
jmp 0xdfdb85
and esi, 0x293d1014
push ecx
mov edx, esi
call fcn.00dfb572
pop ecx
or esi, 0x6936262a
or esi, 0xbac4d0ea
mov eax, ebx
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfdb8d
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x1d4]
push 5
mov eax, edi
imul esi, esi, 0xae16b2ab
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x58]
add eax, dword [ebp - 0xc]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0xc], ecx
mov al, byte [ebp + ecx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
inc edi
mov byte [ebp + ecx - 0x1d4], bl
cmp edi, 0x100
jb 0xdfdb9e
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov edi, ebx
lea eax, [ebx + 1]
or esi, 0xcc53ff42
movzx ebx, al
mov eax, dword [ebp - 0xc]
push 0x74
mov cl, byte [ebp + ebx - 0x1d4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0xc], eax
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp + ebx - 0x1d4], al
mov eax, dword [ebp - 0xc]
mov byte [ebp + eax - 0x1d4], cl
movzx eax, byte [ebp + ebx - 0x1d4]
add eax, edx
mov edx, 0x204e
movzx eax, al
pop ecx
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp - 1], al
mov eax, 0xdd34b0
add edx, ecx
inc eax
cmp edx, 0x10e5
ja 0xdfdc5d
movsx ecx, byte [eax]
test ecx, ecx
jne 0xdfdc49
jmp 0xdfdc6c
imul esi, esi, 0x82f03e83
push ecx
mov edx, esi
call fcn.00dfb572
pop ecx
mov al, byte [ebp + edi - 0x24]
add esi, 0x36db188a
xor al, byte [ebp - 1]
mov byte [ebp + edi - 0x20c], al
inc edi
cmp edi, 0x18
jb 0xdfdbec
mov dword [ebp - 8], esi
lea edi, [ebp - 0x20]
mov esi, 0xdd1b20
mov dword [ebp - 0x40], 0x59c41383
push 5
xor ebx, ebx
mov dword [ebp - 0x3c], 0x38ab7c38
pop eax
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x2b], al
mov eax, ebx
mov byte [ebp - 0x1f4], bl
mov dword [ebp - 0x38], 0x5c140a40
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x34], 0xf0867ce1
mov dword [ebp - 0x30], 0x1139f101
mov byte [ebp - 0x2c], 0xae
movsd dword es:[edi], dword [esi]
mov word [ebp - 0x2a], 0xd1cd
mov dword [ebp - 0xc], ebx
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfdcdc
mov esi, dword [ebp - 8]
mov edi, ebx
mov dword [ebp - 0x48], 0x12
mov eax, ebx
cmp byte [0xe1a6d4], al
je 0xdfdd22
inc eax
cmp eax, 0xb61
jg 0xdfdd13
cmp byte [eax + 0xe1a6d4], bl
jne 0xdfdd01
jmp 0xdfdd22
push ecx
mov edx, esi
call fcn.00dfb572
pop ecx
and esi, 0x8061da85
or esi, 0x25ec119
add esi, 0xb858dd
call fcn.00dfb6e9
xor edx, edx
mov cl, byte [ebp + edi - 0x1d4]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x48]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x20]
mov edx, 0x469
add eax, dword [ebp - 0xc]
add ecx, eax
movzx eax, cl
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0xc], eax
mov eax, 0xe1a740
jmp 0xdfdd74
add edx, ecx
inc eax
cmp edx, 0x13bb
ja 0xdfdd7a
movzx ecx, byte [eax]
test ecx, ecx
jne 0xdfdd66
jmp 0xdfdd85
call fcn.00dfb84c
imul esi, esi, 0x8ef3b54c
add esi, 0x128fa642
xor esi, 0x9134e3c9
call fcn.00dfb5df
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp + ecx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ecx - 0x1d4], al
cmp edi, 0x100
jb 0xdfdcf7
mov edx, ebx
mov ecx, ebx
lea eax, [edx + 1]
mov edi, 0xe1a740
movzx edx, al
mov al, byte [ebp + edx - 0x1d4]
mov byte [ebp - 1], al
movzx eax, al
mov dword [ebp - 0x48], eax
add eax, ebx
movzx ebx, al
or esi, 0x3dc6d09e
mov al, byte [ebp + ebx - 0x1d4]
mov byte [ebp + edx - 0x1d4], al
mov al, byte [0xe1a740]
jmp 0xdfde06
sub al, 0x30
cmp al, 9
ja 0xdfde0c
inc edi
mov al, byte [edi]
test al, al
jne 0xdfddfd
jmp 0xdfde12
and esi, 0xb795e0
mov al, byte [ebp - 1]
sub esi, 0x3d23d245
mov byte [ebp + ebx - 0x1d4], al
movzx eax, byte [ebp + edx - 0x1d4]
add eax, dword [ebp - 0x48]
movzx eax, al
mov al, byte [ebp + eax - 0x1d4]
xor al, byte [ebp + ecx - 0x40]
mov byte [ebp + ecx - 0x228], al
inc ecx
cmp ecx, 0x18
jb 0xdfddc2
mov dword [ebp - 8], esi
lea edi, [ebp - 0x34]
mov esi, 0xdd1ed8
mov dword [ebp - 0x58], 0xc8bb832c
xor ebx, ebx
mov word [ebp - 0x54], 0xa08a
mov byte [ebp - 0x210], bl
mov eax, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfde73
mov esi, ebx
mov dl, byte [ebp + esi - 0x1d4]
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 - 0x1d4]
mov byte [ebp + esi - 0x1d4], al
inc esi
mov byte [ebp + edi - 0x1d4], dl
cmp esi, 0x100
jb 0xdfde84
mov edi, ebx
mov esi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x1d4]
movzx edx, cl
lea eax, [edx + ebx]
movzx ebx, al
mov al, byte [ebp + ebx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
mov byte [ebp + ebx - 0x1d4], cl
movzx eax, byte [ebp + edi - 0x1d4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1d4]
xor al, byte [ebp + esi - 0x58]
mov byte [ebp + esi - 0xd4], al
inc esi
cmp esi, 6
jb 0xdfdec1
xor ebx, ebx
mov dword [ebp - 0x30], 0x5a
push 0x1f
mov byte [ebp - 0xce], bl
mov eax, ebx
pop ecx
mov dword [ebp - 0x2c], 0xffffff87
add ecx, dword [ebp + eax*4 - 0x30]
inc eax
cmp eax, 2
jl 0xdfdf2c
mov edx, dword [ebp - 0x28]
mov eax, 0xe1a6d4
mov dword [ebp - 0xc], ecx
mov ecx, 0xeaf
mov dword [ebp - 0x34], 0x43
mov dword [ebp - 0x30], 0x3c
mov dword [ebp - 0x2c], 0xffffff35
push 0x4c
pop edi
test edx, edx
je 0xdfdf8d
add ecx, edx
inc eax
cmp ecx, 0x2a5
ja 0xdfdf7d
movzx edx, byte [eax]
test edx, edx
jne 0xdfdf62
imul esi, dword [ebp - 8], 0xa6096b26
jmp 0xdfdf9b
call fcn.00dfb84c
mov esi, dword [ebp - 8]
or esi, 0x3189c161
jmp 0xdfdf90
mov esi, dword [ebp - 8]
call fcn.00dfb84c
xor esi, 0xf6c64b0a
imul esi, esi, 0x73d743e0
mov eax, ebx
mov dword [ebp - 8], esi
add edi, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdfdfa6
push 0x50
mov dword [ebp - 0xb4], edi
mov eax, ebx
pop ecx
mov dword [ebp - 0x34], 0x36
mov dword [ebp - 0x30], 0x1f
mov dword [ebp - 0x2c], 0xfffffff3
sub ecx, dword [ebp + eax*4 - 0x34]
inc eax
cmp eax, 3
jl 0xdfdfd0
push 0x12
pop eax
push 5
mov dword [ebp - 0xb8], ecx
mov ecx, 0x820
mov dword [ebp - 0x1c], eax
mov eax, ebx
mov dword [ebp - 0x20], 9
mov dword [ebp - 0x18], 4
mov dword [ebp - 0x14], 0x54
mov dword [ebp - 0x10], 0x6a9
pop edx
sub ecx, dword [ebp + eax*4 - 0x20]
inc eax
cmp eax, edx
jl 0xdfe00c
mov esi, 0xdd1958
mov dword [ebp - 0x58], ecx
lea edi, [ebp - 0x34]
mov dword [ebp - 0x24], 0xf05621d4
push 0xb
pop ecx
movsd dword es:[edi], dword [esi]
mov eax, ebx
mov dword [ebp - 0x20], 0xc3f0822d
mov dword [ebp - 0x1c], 0x1077525d
mov byte [ebp - 0x18], cl
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x17], 0xed7021ad
mov dword [ebp - 0x13], 0xaeb3b87f
mov word [ebp - 0xf], 0x8a03
mov byte [ebp - 0xd], 0x22
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x28], ebx
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfe05b
mov esi, dword [ebp - 8]
mov edi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x1d4]
mov eax, edi
add esi, 0xbee72353
div ecx
movzx ecx, bl
or esi, 0x22dfb444
push 0xb
movzx eax, byte [ebp + edx - 0x34]
add eax, dword [ebp - 0x28]
add ecx, eax
movzx ecx, cl
mov dword [ebp - 0x28], ecx
mov al, byte [ebp + ecx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
inc edi
mov byte [ebp + ecx - 0x1d4], bl
pop ecx
cmp edi, 0x100
jb 0xdfe06f
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov edi, ebx
lea eax, [ebx + 1]
movzx ebx, al
mov eax, dword [ebp - 0x28]
mov cl, byte [ebp + ebx - 0x1d4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x28], eax
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp + ebx - 0x1d4], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + eax - 0x1d4], cl
mov ecx, 0xe1a6d4
movzx eax, byte [ebp + ebx - 0x1d4]
add eax, edx
movzx eax, al
mov dl, byte [ebp + eax - 0x1d4]
mov al, byte [0xe1a6d4]
jmp 0xdfe11f
sub al, 0x30
cmp al, 9
ja 0xdfe125
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfe116
jmp 0xdfe12b
sub esi, 0x5dfdf412
mov al, byte [ebp + edi - 0x24]
sub esi, 0x60f54344
xor al, dl
mov byte [ebp + edi - 0x244], al
inc edi
cmp edi, 0x18
jb 0xdfe0c3
mov dword [ebp - 8], esi
lea edi, [ebp - 0x38]
mov esi, 0xdd1aa4
mov dword [ebp - 0x24], 0x332532f4
push 0xc
pop eax
xor ebx, ebx
mov byte [ebp - 0x13], al
movsd dword es:[edi], dword [esi]
mov eax, ebx
mov byte [ebp - 0x22c], bl
mov dword [ebp - 0x20], 0xb86469e3
mov dword [ebp - 0x1c], 0x5bc53f54
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x18], 0xed66402a
mov byte [ebp - 0x14], 0x31
mov dword [ebp - 0x12], 0x3ff9b0b6
movsd dword es:[edi], dword [esi]
mov word [ebp - 0xe], 0x5af7
movsb byte es:[edi], byte [esi]
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfe194
mov esi, dword [ebp - 8]
mov edi, ebx
xor edx, edx
mov cl, byte [ebp + edi - 0x1d4]
mov eax, edi
mov byte [ebp - 1], cl
div dword [ebp - 0x5c]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x38]
add eax, ebx
add ecx, eax
mov al, byte [0xe1a6d4]
movzx ebx, cl
mov ecx, 0xe1a6d4
jmp 0xdfe1dd
sub al, 0x30
cmp al, 9
ja 0xdfe1e3
inc ecx
mov al, byte [ecx]
test al, al
jne 0xdfe1d4
jmp 0xdfe1e9
add esi, 0x5c9efba2
imul esi, esi, 0x7fbc01ed
push ecx
mov edx, esi
call fcn.00dfb572
mov al, byte [ebp + ebx - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
inc edi
mov al, byte [ebp - 1]
mov byte [ebp + ebx - 0x1d4], al
pop ecx
cmp edi, 0x100
jb 0xdfe1a8
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov edi, ebx
lea eax, [ebx + 1]
add esi, 0xfff80268
movzx ebx, al
mov eax, dword [ebp - 0x28]
mov dword [0xe1a878], esi
mov cl, byte [ebp + ebx - 0x1d4]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x28], eax
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp + ebx - 0x1d4], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + eax - 0x1d4], cl
movzx eax, byte [ebp + ebx - 0x1d4]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1d4]
xor al, byte [ebp + edi - 0x24]
mov byte [ebp + edi - 0x7c], al
inc edi
cmp edi, 0x18
jb 0xdfe220
mov dword [ebp - 8], esi
lea edi, [ebp - 0x34]
mov esi, 0xdd30c4
mov dword [ebp - 0x48], 0xbaf489bf
xor ebx, ebx
mov word [ebp - 0x44], 0x316f
xor dword [ebp - 8], 0x9a65189e
mov eax, ebx
mov byte [ebp - 0x64], bl
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [ebp + eax - 0x1d4], al
inc eax
cmp eax, 0x100
jb 0xdfe2aa
mov edi, ebx
mov esi, ebx
xor edx, edx
mov bl, byte [ebp + edi - 0x1d4]
push 0xb
mov eax, edi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x34]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x1d4]
mov byte [ebp + edi - 0x1d4], al
inc edi
mov byte [ebp + esi - 0x1d4], bl
cmp edi, 0x100
jb 0xdfe2bd
mov esi, dword [ebp - 8]
xor ebx, ebx
mov ch, byte [0xe1a6d4]
mov eax, ebx
mov dword [ebp - 0x28], ebx
mov edi, ebx
inc eax
movzx eax, al
mov dword [ebp - 0x50], eax
mov ebx, dword [ebp - 0x50]
mov cl, byte [ebp + eax - 0x1d4]
mov eax, dword [ebp - 0x28]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x28], eax
mov al, byte [ebp + eax - 0x1d4]
mov byte [ebp + ebx - 0x1d4], al
mov eax, dword [ebp - 0x28]
mov byte [ebp + eax - 0x1d4], cl
mov eax, ebx
xor ebx, ebx
movzx eax, byte [ebp + eax - 0x1d4]
add eax, edx
movzx eax, al
mov cl, byte [ebp + eax - 0x1d4]
mov eax, ebx
test ch, ch
je 0xdfe386
inc eax
cmp eax, 0x17ac
jl 0xdfe380
cmp byte [eax + 0xe1a6d4], bl
jne 0xdfe361
cmp eax, 0x19d5
jle 0xdfe386
or esi, 0xe3be5440
jmp 0xdfe38c
add esi, 0x4c6c0fa5
add esi, 0x9d95e724
mov al, byte [ebp + edi - 0x48]
xor al, cl
imul esi, esi, 0xd5354ce1
mov byte [ebp + edi - 0x30], al
inc edi
mov eax, dword [ebp - 0x50]
cmp edi, 6
jb 0xdfe30c
push 2
mov byte [ebp - 0x2a], bl
pop eax
mov dword [ebp - 0x60], 0x31
mov dword [ebp - 0x5c], 0xffffffd1
add eax, dword [ebp + ebx*4 - 0x60]
inc ebx
cmp ebx, 2
jl 0xdfe3bd
mov dword [ebp - 0x1c], 0x38
lea ecx, [ebp - 0x1f0]
mov dword [ebp - 0x18], 0x2a
mov dword [ebp - 0x14], 0x35
mov dword [ebp - 0x10], 0xffffff3b
movups xmm1, xmmword [ebp - 0x1c]
mov dword [ebp - 0x5c], eax
movaps xmm0, xmm1
psrldq xmm0, 8
paddd xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
paddd xmm1, xmm0
movd eax, xmm1
add eax, 0x2e
mov dword [ebp - 0x48], eax
imul eax, esi, 0xb5a55f25
mov dword [0xe1a878], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 8], eax
call fcn.00e0523e
push dword [ebp - 0x4c]
mov esi, eax
lea ecx, [ebp - 0x9c]
push dword [ebp - 0xbc]
lea eax, [ebp - 8]
push dword [ebp - 0xc0]
push dword [ebp - 0xc4]
push eax
push dword [ebp - 0xc8]
push dword [ebp - 0xcc]
push esi
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x274]
call fcn.00dee9ca
call eax
mov ecx, esi
call fcn.00e05897
push eax
push dword [ebp - 0xa0]
push esi
call fcn.00e05117
add esp, 0xc
mov ecx, esi
call fcn.00dee98d
mov eax, dword [ebp - 0xa4]
lea ecx, [eax + eax]
call fcn.00dee8ce
mov ecx, dword [ebp - 0x90]
add ecx, ecx
mov dword [ebp - 0x28], eax
call fcn.00dee8ce
mov ecx, dword [ebp - 0xa8]
add ecx, ecx
mov dword [ebp - 0x90], eax
call fcn.00dee8ce
mov ecx, dword [ebp - 0xac]
mov esi, eax
add ecx, ecx
mov dword [ebp - 0x50], esi
call fcn.00dee8ce
mov ecx, dword [ebp - 0x94]
mov ebx, eax
add ecx, ecx
call fcn.00dee8ce
mov ecx, esi
mov edi, eax
call fcn.00dde7a0
mov ecx, ebx
call fcn.00dde35b
and dword [0xe1a878], 0x442bebda
mov ecx, edi
call fcn.00dddced
lea ecx, [ebp - 0x20c]
call fcn.00e0523e
push edi
push ebx
push dword [ebp - 0x50]
mov esi, eax
push esi
push dword [ebp - 0x28]
lea ecx, [ebp - 0xd4]
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x228]
call fcn.00dee9ca
call eax
mov ecx, esi
call fcn.00e05897
push eax
push dword [ebp - 0xc]
push esi
call fcn.00e05117
mov ecx, esi
call fcn.00dee98d
mov ecx, dword [ebp - 0x28]
call fcn.00e05897
mov esi, dword [ebp - 0x90]
mov ecx, esi
mov edx, dword [ebp - 0x28]
push eax
call fcn.00e05378
add esp, 0x24
mov ecx, esi
push dword [ebp - 8]
call fcn.00e05863
mov edx, eax
call fcn.00dfd1d0
pop ecx
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x94], eax
call fcn.00dee98d
mov ecx, esi
call fcn.00dee98d
mov ecx, dword [ebp - 0x50]
call fcn.00dee98d
mov ecx, ebx
call fcn.00dee98d
mov ecx, edi
call fcn.00dee98d
lea ecx, [ebp - 0x94]
call fcn.00dfd1c4
mov ebx, eax
lea ecx, [ebp - 8]
mov dword [ebp - 0x1c], ebx
call fcn.00dfd1c4
mov word [ebp - 0x18], ax
call fcn.00dfd1c4
mov edx, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb8]
mov word [ebp - 0x16], ax
cmp edx, esi
jge 0xdfe5e8
lea ecx, [ebp - 8]
call fcn.00dfd1c4
mov byte [ebp + edx - 0x14], al
inc edx
cmp edx, esi
jl 0xdfe5d4
mov ebx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x58]
add ecx, ecx
call fcn.00dee8ce
mov edi, eax
test edi, edi
jne 0xdfe62b
push 5
mov dword [ebp - 0x20], 0x10
mov ecx, eax
mov dword [ebp - 0x1c], 0x38
mov dword [ebp - 0x18], 0x14
mov dword [ebp - 0x14], 0x4d
mov dword [ebp - 0x10], 0xffffff57
pop edx
sub eax, dword [ebp + ecx*4 - 0x20]
inc ecx
cmp ecx, edx
jl 0xdfe620
jmp 0xdfe682
lea ecx, [ebp - 0x244]
call fcn.00e0523e
movzx ecx, word [ebp - 0x16]
mov esi, eax
mov eax, dword [ebp - 0x5c]
push dword [ebp + eax - 0x14]
push ecx
push ebx
push esi
push edi
lea ecx, [ebp - 0x30]
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x7c]
call fcn.00dee9ca
call eax
mov ecx, esi
call fcn.00e05897
push eax
push dword [ebp - 0x48]
push esi
call fcn.00e05117
add esp, 0x20
mov ecx, esi
call fcn.00dee98d
add dword [0xe1a878], 0x3be626dd
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret