Function at 0xdfc4fb
Capabilities:
Authenticate hmac
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x558
movzx eax, byte [0xe1a7a0]
push esi
push edi
mov edi, 0xe1a7a0
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x50], ecx
mov esi, 0x1018
mov dword [ebp - 0xc0], edi
jmp 0xdfc537
add esi, eax
inc edi
cmp esi, 0x1d05
ja 0xdfc5fb
movzx eax, byte [edi]
test eax, eax
jne 0xdfc525
mov edx, dword [0xe1a8b4]
push 5
add edx, 0x5d0cbcfc
mov dword [ebp - 0x88], 0x28
xor eax, eax
mov dword [ebp - 0x84], 0x2e
pop edi
mov esi, eax
mov dword [ebp - 0x80], 0x57
mov dword [ebp - 0x7c], 0x49
mov ecx, eax
mov dword [ebp - 0x78], 0xffffff0a
mov dword [ebp - 0x54], edi
sub esi, dword [ebp + ecx*4 - 0x88]
inc ecx
cmp ecx, edi
jl 0xdfc57c
push 9
pop ecx
mov dword [ebp - 0xbc], ecx
mov byte [ebp - 0x4a], cl
push 0x15
pop ecx
mov dword [ebp - 0x64], esi
mov esi, 0xdd3044
mov dword [ebp - 0x14], ecx
mov byte [ebp - 0x48], cl
mov ecx, edi
lea edi, [ebp - 0x8c]
mov word [ebp - 0x4c], 0x317b
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x49], 0x33
mov ecx, 0xdd32c4
mov dword [ebp - 0x47], 0x532e975b
mov dword [ebp - 0x43], 0x247db763
movsw word es:[edi], word [esi]
mov dword [ebp - 0x3f], 0xb4a04c63
mov esi, eax
mov dword [ebp - 0x3b], 0x58da5f27
mov word [ebp - 0x37], 0xf751
mov byte [ebp - 0x35], 0xb2
add ecx, 2
inc esi
cmp esi, 0x1276
jl 0xdfc60c
cmp word [ecx], ax
jne 0xdfc5e8
jmp 0xdfc612
mov edx, dword [0xe1a8b4]
add edx, 0x4da4531c
jmp 0xdfc541
imul edx, edx, 0x86f07677
lea esi, [edx + 0x6e950832]
or esi, 0x45654c9e
call fcn.00dfb5df
xor eax, eax
mov edi, eax
inc eax
cmp eax, 0x124c
je 0xdfc64c
cmp byte [eax + 0xdd3480], 0
jne 0xdfc627
cmp eax, 0x20e0
jle 0xdfc65b
call fcn.00dfb6e9
or esi, 0x13485932
jmp 0xdfc661
push ecx
mov edx, esi
call fcn.00dfb572
pop ecx
add esi, 0x2cd6d25c
add esi, 0xa6f2bf75
lea eax, [esi - 0x76cd4c1a]
mov dword [0xe1a8b4], eax
xor eax, eax
mov ecx, eax
mov byte [ebp + ecx - 0x1cc], cl
inc ecx
cmp ecx, 0x100
jb 0xdfc670
mov esi, eax
xor edx, edx
mov cl, byte [ebp + esi - 0x1cc]
mov eax, esi
mov byte [ebp - 9], cl
div dword [ebp - 0x14]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x8c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1cc]
mov byte [ebp + esi - 0x1cc], al
inc esi
mov al, byte [ebp - 9]
mov byte [ebp + edi - 0x1cc], al
cmp esi, 0x100
jb 0xdfc682
xor eax, eax
mov dword [ebp - 0x60], 0x18
mov dword [ebp - 0x10], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x10]
push 0x18
mov cl, byte [ebp + edi - 0x1cc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x10], eax
mov al, byte [ebp + eax - 0x1cc]
mov byte [ebp + edi - 0x1cc], al
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0x1cc], cl
movzx eax, byte [ebp + edi - 0x1cc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1cc]
xor al, byte [ebp + esi - 0x4c]
mov byte [ebp + esi - 0x1e8], al
inc esi
pop eax
cmp esi, eax
jb 0xdfc6d6
mov esi, 0xdd1abc
mov dword [ebp - 4], 0xba6bb55d
lea edi, [ebp - 0x88]
xor eax, eax
mov byte [ebp - 0x1d0], al
mov ecx, eax
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]
mov edi, eax
mov byte [ebp + ecx - 0x1cc], cl
inc ecx
cmp ecx, 0x100
jb 0xdfc754
mov esi, eax
mov dword [ebp - 0x14], 0x11
xor edx, edx
mov cl, byte [ebp + esi - 0x1cc]
mov eax, esi
mov byte [ebp - 9], cl
div dword [ebp - 0x14]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x88]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x1cc]
mov byte [ebp + esi - 0x1cc], al
inc esi
mov al, byte [ebp - 9]
mov byte [ebp + edi - 0x1cc], al
cmp esi, 0x100
jb 0xdfc76d
xor eax, eax
mov dword [ebp - 0x10], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp - 0x10]
mov cl, byte [ebp + edi - 0x1cc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 0x10], eax
mov al, byte [ebp + eax - 0x1cc]
mov byte [ebp + edi - 0x1cc], al
mov eax, dword [ebp - 0x10]
mov byte [ebp + eax - 0x1cc], cl
movzx eax, byte [ebp + edi - 0x1cc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1cc]
xor al, byte [ebp + esi - 4]
mov byte [ebp + esi - 0xc8], al
inc esi
cmp esi, 4
jb 0xdfc7ba
xor eax, eax
mov dword [ebp - 0x6c], 0x42
push 0x44
mov byte [ebp - 0xc4], al
mov ecx, eax
pop edx
mov dword [ebp - 0x68], 0xffffff7a
add edx, dword [ebp + ecx*4 - 0x6c]
inc ecx
cmp ecx, 2
jl 0xdfc82d
mov dword [ebp - 0x84], 0x55
mov dword [ebp - 0x80], 0x4a
mov dword [ebp - 0x7c], 4
mov dword [ebp - 0x78], 0xffffff45
movups xmm1, xmmword [ebp - 0x84]
push 0x27
pop esi
movaps xmm0, xmm1
mov dword [ebp - 0x70], 0x5c
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x6c], 0xc
movups xmm0, xmm1
mov dword [ebp - 0x68], 0xffffff71
psrldq xmm0, 4
paddd xmm1, xmm0
movd ecx, xmm1
add ecx, 0x19
add esi, dword [ebp + eax*4 - 0x70]
inc eax
cmp eax, 3
jl 0xdfc894
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0xcc], eax
lea eax, [ebp - 0x10]
push eax
push ecx
push edx
push dword [ebp - 0x50]
lea ecx, [ebp - 0xc8]
push 0x80000001
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x1e8]
call fcn.00dee9ca
call eax
test eax, eax
jne 0xdfd1be
push 0x64
pop eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov byte [ebp - 0x9e], al
mov eax, dword [0xdd205c]
mov dword [ebp - 0x6c], eax
mov ax, word [0xdd2060]
mov word [ebp - 0x68], ax
mov eax, ecx
mov dword [ebp - 0xb8], 0x95b5cdd0
mov dword [ebp - 0xb4], 0x62fc866a
mov dword [ebp - 0xb0], 0x4d20eda8
mov dword [ebp - 0xac], 0x44251d2c
mov dword [ebp - 0xa8], 0x2c29a43
mov dword [ebp - 0xa4], 0xf8ab3ebb
mov word [ebp - 0xa0], 0x9524
mov dword [ebp - 0x9d], 0x3a9e591b
mov dword [ebp - 0x99], 0x6d79ca
mov dword [ebp - 0x95], 0x1e8484c2
mov dword [ebp - 0x91], 0xdaa97f94
mov byte [ebp - 0x8d], 0x95
mov dword [ebp - 8], ecx
mov byte [ebp + eax - 0x1cc], al
inc eax
cmp eax, 0x100
jb 0xdfc976
mov esi, dword [0xe1a8b4]
mov edi, ecx
xor edx, edx
mov cl, byte [ebp + edi - 0x1cc]
mov eax, edi
mov byte [ebp + 0xf], cl
div dword [ebp - 0x54]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x6c]
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov dword [ebp - 8], eax
xor eax, eax
inc eax
cmp eax, 0x2323
jg 0xdfc9c6
cmp byte [eax + 0xdd3480], 0
jne 0xdfc9b3
jmp 0xdfc9cc
or esi, 0x1fab964d
and esi, 0xe62b115c
xor esi, 0x8308d3ef
call fcn.00dfb6e9
mov ecx, dword [ebp - 8]
mov al, byte [ebp + ecx - 0x1cc]
mov byte [ebp + edi - 0x1cc], al
inc edi
mov al, byte [ebp + 0xf]
mov byte [ebp + ecx - 0x1cc], al
cmp edi, 0x100
jb 0xdfc98d
xor eax, eax
mov dword [ebp - 4], esi
mov dword [ebp + 0xc], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp + 0xc]
mov cl, byte [ebp + edi - 0x1cc]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp + 0xc], eax
mov al, byte [ebp + eax - 0x1cc]
mov byte [ebp + edi - 0x1cc], al
mov eax, dword [ebp + 0xc]
mov byte [ebp + eax - 0x1cc], cl
movzx eax, byte [ebp + edi - 0x1cc]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x1cc]
xor al, byte [ebp + esi - 0xb8]
mov byte [ebp + esi - 0x434], al
inc esi
cmp esi, 0x2c
jb 0xdfca0d
push 6
pop ecx
mov esi, 0xdd2298
mov dword [ebp - 8], 0xe79036c3
lea edi, [ebp - 0x8c]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x408], al
mov ecx, eax
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 4]
and esi, 0xa407333f
mov dword [ebp - 4], eax
mov byte [ebp + ecx - 0x558], cl
inc ecx
cmp ecx, 0x100
jb 0xdfca96
mov edi, eax
xor edx, edx
mov cl, byte [ebp + edi - 0x558]
mov eax, edi
mov byte [ebp + 0xf], cl
div dword [ebp - 0x60]
movzx ecx, cl
push 0x72
movzx eax, byte [ebp + edx - 0x8c]
mov edx, 0xac0
add eax, dword [ebp - 4]
add ecx, eax
movzx eax, cl
mov dword [ebp - 4], eax
pop ecx
mov al, byte [ebp + eax - 0x558]
mov byte [ebp + edi - 0x558], al
mov eax, 0xdd31e8
add edx, ecx
lea eax, [eax + 2]
cmp edx, 0x252b
ja 0xdfcb00
movzx ecx, word [eax]
test ecx, ecx
jne 0xdfcaea
jmp 0xdfcb06
xor esi, 0xae98f58a
mov ecx, dword [ebp - 4]
or esi, 0xbb17cee5
mov al, byte [ebp + 0xf]
sub esi, 0x5c346c0
inc edi
mov byte [ebp + ecx - 0x558], al
cmp edi, 0x100
jb 0xdfcaa8
xor edx, edx
mov dword [ebp - 0x50], edx
mov edi, edx
mov dword [ebp - 4], edx
lea eax, [edi + 1]
movzx edi, al
push 0x69
mov dword [ebp - 0x18], edi
mov al, byte [ebp + edi - 0x558]
mov byte [ebp + 0xf], al
movzx eax, al
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x64]
movzx eax, al
mov dword [ebp - 0x50], eax
mov al, byte [ebp + eax - 0x558]
mov byte [ebp + edi - 0x558], al
mov edi, 0xdd32c4
pop eax
add eax, 0xffffffd0
cmp ax, word [ebp - 0xbc]
ja 0xdfcb89
add edi, 2
movzx eax, word [edi]
mov dword [ebp - 0x60], eax
test ax, ax
jne 0xdfcb6d
jmp 0xdfcb8f
add esi, 0x1af64228
mov eax, dword [ebp - 0x50]
and esi, 0xcd5d7365
mov edi, dword [ebp - 0x18]
mov cl, byte [ebp + 0xf]
mov byte [ebp + eax - 0x558], cl
movzx eax, byte [ebp + edi - 0x558]
add eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 4]
movzx eax, al
mov al, byte [ebp + eax - 0x558]
xor al, byte [ebp + ecx - 8]
mov byte [ebp + ecx - 0x6c], al
inc ecx
mov dword [ebp - 4], ecx
cmp ecx, 4
jb 0xdfcb32
mov dword [ebp - 0x84], 0xf
xorps xmm1, xmm1
mov dword [ebp - 0x80], 2
mov ecx, edx
mov dword [ebp - 0x7c], 0x54
mov eax, edx
mov dword [ebp - 0x78], 0xffffff9b
movups xmm0, xmmword [ebp - 0x84]
push 5
mov dword [ebp - 4], esi
psubd xmm1, xmm0
mov byte [ebp - 0x68], dl
movaps xmm0, xmm1
mov dword [ebp - 0x48], 0x4e
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 0x44], 0x4a
movups xmm0, xmm1
mov dword [ebp - 0x40], 0x4b
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x3c], 0x39
mov dword [ebp - 0x38], 0xfffffee4
pop esi
sub ecx, dword [ebp + eax*4 - 0x48]
inc eax
cmp eax, esi
jl 0xdfcc47
push 0x11
pop eax
mov dword [ebp - 0xbc], ecx
lea edi, [ebp - 0x458]
push 8
pop ecx
mov esi, 0xdd305c
mov byte [ebp - 0x32], al
rep movsd dword es:[edi], dword [esi]
mov word [ebp - 0x34], 0x943e
mov eax, edx
mov dword [ebp - 0x31], 0xef85ecb6
mov dword [ebp - 0x2d], 0xa8d75f21
movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x29], 0x4de91927
mov edi, edx
mov dword [ebp - 0x25], 0x12ed1285
mov dword [ebp - 0x21], 0x40cd72ca
mov byte [ebp - 0x1d], 0x36
mov byte [ebp + eax - 0x304], al
inc eax
cmp eax, 0x100
jb 0xdfcc9e
mov esi, edx
mov dl, byte [ebp + esi - 0x304]
mov eax, esi
and eax, 0x1f
movzx ecx, dl
movzx eax, byte [ebp + eax - 0x458]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x304]
mov byte [ebp + esi - 0x304], al
inc esi
mov byte [ebp + edi - 0x304], dl
cmp esi, 0x100
jb 0xdfccaf
xor eax, eax
sub dword [ebp - 4], 0x40aeed0
mov dword [ebp + 0xc], eax
mov edi, eax
mov esi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp + 0xc]
push 0x18
mov cl, byte [ebp + esi - 0x304]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp + 0xc], eax
mov al, byte [ebp + eax - 0x304]
mov byte [ebp + esi - 0x304], al
mov eax, dword [ebp + 0xc]
mov byte [ebp + eax - 0x304], cl
movzx eax, byte [ebp + esi - 0x304]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x304]
xor al, byte [ebp + edi - 0x34]
mov byte [ebp + edi - 0x204], al
inc edi
pop eax
cmp edi, eax
jb 0xdfccfb
mov al, byte [0xe1a7a0]
mov esi, dword [ebp - 4]
mov byte [ebp - 0x1ec], 0
jmp 0xdfcd7b
sub al, 0x30
cmp al, 9
ja 0xdfcd81
mov eax, dword [ebp - 0xc0]
inc eax
mov dword [ebp - 0xc0], eax
mov al, byte [eax]
test al, al
jne 0xdfcd66
jmp 0xdfcd87
or esi, 0xc72b8b82
xor esi, 0x3ae2e460
mov dword [ebp - 4], esi
call fcn.00dfb84c
mov esi, 0xdd1908
mov dword [ebp - 8], 0xa6fe5d97
lea edi, [ebp - 0x44]
xor eax, eax
mov ecx, eax
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]
mov edi, eax
mov byte [ebp + ecx - 0x404], cl
inc ecx
cmp ecx, 0x100
jb 0xdfcdb0
mov esi, eax
xor edx, edx
mov dword [ebp - 0x18], 0xe
mov eax, esi
mov cl, byte [ebp + esi - 0x404]
div dword [ebp - 0x18]
mov byte [ebp + 0xf], cl
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x404]
mov byte [ebp + esi - 0x404], al
inc esi
mov al, byte [ebp + 0xf]
mov byte [ebp + edi - 0x404], al
cmp esi, 0x100
jb 0xdfcdc2
xor eax, eax
and dword [ebp - 4], 0x7cc4c7a0
mov dword [ebp + 0xc], eax
mov edi, eax
mov esi, eax
lea eax, [esi + 1]
movzx esi, al
mov eax, dword [ebp + 0xc]
mov cl, byte [ebp + esi - 0x404]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp + 0xc], eax
mov al, byte [ebp + eax - 0x404]
mov byte [ebp + esi - 0x404], al
mov eax, dword [ebp + 0xc]
mov byte [ebp + eax - 0x404], cl
movzx eax, byte [ebp + esi - 0x404]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x404]
xor al, byte [ebp + edi - 8]
mov byte [ebp + edi - 0x60], al
inc edi
cmp edi, 4
jb 0xdfce1a
mov esi, dword [ebp - 4]
xor eax, eax
mov byte [ebp - 0x5c], al
mov ecx, eax
mov dword [ebp - 0x1c], 0x32
mov dword [ebp - 0x18], 0xffffff6a
push 0x72
mov edx, 0xdd31e8
pop edi
lea eax, [edi - 0x30]
push 9
pop edi
cmp ax, di
ja 0xdfcea9
add edx, 2
movzx eax, word [edx]
mov edi, eax
test ax, ax
jne 0xdfce8f
jmp 0xdfceaf
and esi, 0xcf357a08
mov edi, dword [ebp - 0x14]
xor esi, 0x7dd42764
add edi, dword [ebp + ecx*4 - 0x1c]
inc ecx
mov dword [ebp - 0x14], edi
cmp ecx, 2
jl 0xdfce87
lea eax, [ebp - 0xcc]
mov dword [0xe1a8b4], esi
push eax
push dword [ebp + 8]
movd eax, xmm1
lea ecx, [ebp - 0x6c]
push dword [ebp - 0xbc]
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x10]
call fcn.00dee9eb
mov edx, eax
lea ecx, [ebp - 0x434]
call fcn.00dee9ca
call eax
test eax, eax
jne 0xdfd1ab
mov esi, 0xdd3080
mov dword [ebp - 0x34], 0x7beffbb9
lea edi, [ebp - 0x44]
mov dword [ebp - 0x30], 0xd3f74135
mov dword [ebp - 0x2c], 0x9c8a4217
mov ecx, eax
mov dword [ebp - 0x28], 0xc9ea874e
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x24], 0xb8d0285d
mov dword [ebp - 0x20], 0xb43d68d9
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, eax
mov byte [ebp + ecx - 0x404], cl
inc ecx
cmp ecx, 0x100
jb 0xdfcf3f
mov esi, eax
xor edx, edx
mov cl, byte [ebp + esi - 0x404]
mov eax, esi
mov byte [ebp + 0xf], cl
div dword [ebp - 0x84]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x44]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x404]
mov byte [ebp + esi - 0x404], al
inc esi
mov al, byte [ebp + 0xf]
mov byte [ebp + edi - 0x404], al
cmp esi, 0x100
jb 0xdfcf51
xor eax, eax
mov dword [ebp + 0xc], eax
mov edi, eax
mov esi, eax
lea eax, [edi + 1]
movzx edi, al
mov eax, dword [ebp + 0xc]
push 0x18
mov cl, byte [ebp + edi - 0x404]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp + 0xc], eax
mov al, byte [ebp + eax - 0x404]
mov byte [ebp + edi - 0x404], al
mov eax, dword [ebp + 0xc]
mov byte [ebp + eax - 0x404], cl
movzx eax, byte [ebp + edi - 0x404]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x404]
xor al, byte [ebp + esi - 0x34]
mov byte [ebp + esi - 0x8c], al
inc esi
pop eax
cmp esi, eax
jb 0xdfcf9e
mov eax, dword [0xdd1bac]
xor ecx, ecx
imul esi, dword [0xe1a8b4], 0xea5f68aa
mov dword [ebp - 0x1c], eax
mov ax, word [0xdd1bb0]
mov word [ebp - 0x18], ax
mov eax, ecx
mov byte [ebp - 0x74], cl
mov dword [ebp - 8], 0x9172c424
mov dword [ebp - 0x58], esi
mov byte [ebp + eax - 0x304], al
inc eax
cmp eax, 0x100
jb 0xdfd025
mov edi, ecx
mov esi, ecx
xor edx, edx
mov cl, byte [ebp + edi - 0x304]
mov eax, edi
mov byte [ebp + 0xf], cl
div dword [ebp - 0x54]
movzx ecx, cl
movzx eax, byte [ebp + edx - 0x1c]
add eax, esi
add ecx, eax
movzx esi, cl
mov al, byte [ebp + esi - 0x304]
mov byte [ebp + edi - 0x304], al
inc edi
mov al, byte [ebp + 0xf]
mov byte [ebp + esi - 0x304], al
cmp edi, 0x100
jb 0xdfd038
mov esi, dword [ebp - 0x58]
xor eax, eax
mov edx, 0xdd3480
mov dword [ebp + 0xc], eax
mov ecx, eax
mov dword [ebp - 0x14], edx
mov edi, eax
lea eax, [ecx + 1]
movzx eax, al
mov dword [ebp - 0x54], eax
push 0x6d
mov cl, byte [ebp + eax - 0x304]
mov eax, dword [ebp + 0xc]
movzx edx, cl
add eax, edx
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x54]
movzx eax, al
mov dword [ebp + 0xc], eax
mov al, byte [ebp + eax - 0x304]
mov byte [ebp + edx - 0x304], al
mov edx, 0xdd3480
mov eax, dword [ebp + 0xc]
mov byte [ebp + eax - 0x304], cl
mov eax, 0x15f6
pop ecx
add eax, ecx
inc edx
cmp eax, 0xdbc
ja 0xdfd0ef
movsx ecx, byte [edx]
test ecx, ecx
jne 0xdfd0d6
imul esi, esi, 0x4f9780e6
jmp 0xdfd102
push ecx
lea edx, [esi + 0x38660fd]
call fcn.00dfb572
pop ecx
add esi, 0xa2f352cb
xor esi, 0x618c31e3
call fcn.00dfb5df
mov ecx, dword [ebp - 0x54]
movzx eax, byte [ebp + ecx - 0x304]
add eax, dword [ebp - 0x58]
movzx eax, al
mov al, byte [ebp + eax - 0x304]
xor al, byte [ebp + edi - 8]
mov byte [ebp + edi - 0x1c], al
inc edi
cmp edi, 4
jb 0xdfd08d
push 0xa
pop edi
push 0x6d
mov byte [ebp - 0x18], 0
pop ecx
sub cl, 0x30
cmp cl, 9
ja 0xdfd15a
mov eax, dword [ebp - 0x14]
inc eax
mov dword [ebp - 0x14], eax
mov al, byte [eax]
mov cl, al
test al, al
jne 0xdfd141
jmp 0xdfd160
xor esi, 0xe05aa57f
and esi, 0xbf881655
mov dword [ebp - 0x40], 0x5b
mov dword [0xe1a8b4], esi
xor eax, eax
mov dword [ebp - 0x3c], 0x38
mov dword [ebp - 0x38], 0xffffff76
sub edi, dword [ebp + eax*4 - 0x40]
inc eax
cmp eax, 3
jl 0xdfd183
push dword [ebp - 0x10]
lea ecx, [ebp - 0x1c]
call fcn.00dee9eb
lea ecx, [ebp - 0x8c]
mov edx, eax
call fcn.00dee9ca
call eax
mov eax, edi
jmp 0xdfd1c0
push dword [ebp - 0x10]
lea ecx, [ebp - 0x60]
call fcn.00dee9eb
lea ecx, [ebp - 0x204]
jmp 0xdfd19e
mov eax, esi
pop edi
pop esi
leave
ret