Function at 0x100051dc
Capabilities:
Encrypt data using chaskey

Disassembly:
sub esp, 0xd8
push ebx
mov ebx, dword [esp + 0xe0]
push ebp
push esi
push edi
push dword [esp + 0xf0]
push ebx
push edx
push ecx
call fcn.1001cef6
mov dword [esp + 0xf0], 0x2f6c22
xor edi, edi
mov dword [esp + 0xf4], edi
add esp, 0x10
mov dword [esp + 0x14], 0x4fb8
xor edx, edx
imul eax, dword [esp + 0x14], 0x21
mov esi, 0x13036e2f
push 0x78
pop ecx
mov dword [esp + 0x14], eax
shl dword [esp + 0x14], 0xa
or dword [esp + 0x14], 0xc1d6db12
xor dword [esp + 0x14], 0xe9de9d1c
mov dword [esp + 0x70], 0x6c05
or dword [esp + 0x70], 0x95afd1ac
add dword [esp + 0x70], 0x4f74
xor dword [esp + 0x70], 0x95b0cd25
mov dword [esp + 0x98], 0xb04c
shr dword [esp + 0x98], 0xa
xor dword [esp + 0x98], 0x802c
mov dword [esp + 0x1c], 0x2d1
mov eax, dword [esp + 0x1c]
div ecx
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0xa299f3ea
shl dword [esp + 0x1c], 7
xor dword [esp + 0x1c], 0x4cf9f601
mov dword [esp + 0x80], 0xeb31
shl dword [esp + 0x80], 5
xor dword [esp + 0x80], 0x1d6660
mov dword [esp + 0xbc], 0x2b2a
imul eax, dword [esp + 0xbc], 0x3a
mov dword [esp + 0xbc], eax
xor dword [esp + 0xbc], 0xf009c784
mov dword [esp + 0x54], 0x3511
add dword [esp + 0x54], 0xffffb0ac
add dword [esp + 0x54], 0x1dde
xor dword [esp + 0x54], 0x2422
mov dword [esp + 0x38], 0xf80
or dword [esp + 0x38], 0xcf1efdc5
shr dword [esp + 0x38], 9
xor dword [esp + 0x38], 0x67f134
mov dword [esp + 0x68], 0xf3f9
shr dword [esp + 0x68], 0x10
add dword [esp + 0x68], 0xffff8070
xor dword [esp + 0x68], 0xffffad50
mov dword [esp + 0x4c], 0x1ed7
imul eax, dword [esp + 0x4c], 7
mov dword [esp + 0x4c], eax
or dword [esp + 0x4c], 0x66edbffd
xor dword [esp + 0x4c], 0x66edc681
mov dword [esp + 0x44], 0x8519
or dword [esp + 0x44], 0xd19ee28c
shl dword [esp + 0x44], 7
shl dword [esp + 0x44], 0xe
xor dword [esp + 0x44], 0xf3a06637
mov dword [esp + 0xd4], 0xbb56
add dword [esp + 0xd4], 0x810b
xor dword [esp + 0xd4], 0x127fb
mov dword [esp + 0x48], 0x4332
add dword [esp + 0x48], 0xbcc4
shl dword [esp + 0x48], 3
add dword [esp + 0x48], 0xffff4f06
xor dword [esp + 0x48], 0x77f8e
mov dword [esp + 0x5c], 0x2032
shr dword [esp + 0x5c], 7
shl dword [esp + 0x5c], 2
xor dword [esp + 0x5c], 0x4fae
mov dword [esp + 0x28], 0x625c
mov eax, dword [esp + 0x28]
push 0x7a
xor edx, edx
pop ecx
div ecx
push 0x25
mov dword [esp + 0x2c], eax
xor edx, edx
imul eax, dword [esp + 0x2c], 0x7b
pop ecx
push 0x26
mov dword [esp + 0x2c], eax
shr dword [esp + 0x2c], 3
xor dword [esp + 0x2c], 0x1867
mov dword [esp + 0x68], 0x6d03
shl dword [esp + 0x68], 0xd
shl dword [esp + 0x68], 5
xor dword [esp + 0x68], 0xb40c7889
mov dword [esp + 0xc8], 0x77e5
or dword [esp + 0xc8], 0x335e89d9
xor dword [esp + 0xc8], 0x335ebb82
mov dword [esp + 0xa8], 0x1856
mov eax, dword [esp + 0xa8]
div ecx
xor edx, edx
mov dword [esp + 0xa8], eax
xor dword [esp + 0xa8], 0x1c9c
mov dword [esp + 0x14], 0xfba1
imul eax, dword [esp + 0x14], 0x27
pop ecx
push 0x61
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x54f38fd1
xor dword [esp + 0x14], 0xff319135
xor dword [esp + 0x14], 0xabe41aec
mov dword [esp + 0xcc], 0xe3d8
mov eax, dword [esp + 0xcc]
div ecx
xor edx, edx
mov dword [esp + 0xcc], eax
xor dword [esp + 0xcc], 0x6759
mov dword [esp + 0x80], 0x1bf4
or dword [esp + 0x80], 0x86b904e2
xor dword [esp + 0x80], 0xe0740bd2
xor dword [esp + 0x80], 0x66cd13de
mov dword [esp + 0xc4], 0xd6b6
add dword [esp + 0xc4], 0xffff5cb9
xor dword [esp + 0xc4], 0x887
mov dword [esp + 0x40], 0x9dbf
xor dword [esp + 0x40], 0xbf0f08c4
or dword [esp + 0x40], 0x4f1deead
xor dword [esp + 0x40], 0xff1fce97
mov dword [esp + 0xb4], 0xbaf5
or dword [esp + 0xb4], 0x6914981f
xor dword [esp + 0xb4], 0x69149348
mov dword [esp + 0xac], 0x5af
imul eax, dword [esp + 0xac], 0x2f
pop ecx
mov dword [esp + 0xa8], eax
xor dword [esp + 0xa8], 0x179d0
mov dword [esp + 0x90], 0x752d
shl dword [esp + 0x90], 7
xor dword [esp + 0x90], 0x3a9f71
mov dword [esp + 0x50], 0xbb0f
add dword [esp + 0x50], 0xffff9a9a
shr dword [esp + 0x50], 4
xor dword [esp + 0x50], 0x7013
mov dword [esp + 0x9c], 0xa2bb
mov eax, dword [esp + 0x9c]
div ecx
mov dword [esp + 0x9c], eax
xor dword [esp + 0x9c], 0x3214
mov dword [esp + 0x58], 0xbb31
shr dword [esp + 0x58], 5
add dword [esp + 0x58], 0x5cb2
xor dword [esp + 0x58], 0x10fd
mov dword [esp + 0x30], 0x821f
add dword [esp + 0x30], 0x6599
imul eax, dword [esp + 0x30], 0xf
mov dword [esp + 0x30], eax
xor dword [esp + 0x30], 0x894c98d7
xor dword [esp + 0x30], 0x89415c0a
mov dword [esp + 0x74], 0x664f
xor edx, edx
add dword [esp + 0x74], 0xf513
xor dword [esp + 0x74], 0x6640a82a
xor dword [esp + 0x74], 0x66418ae5
mov dword [esp + 0x40], 0x8b6
shl dword [esp + 0x40], 7
or dword [esp + 0x40], 0xd6ae2bb9
shl dword [esp + 0x40], 4
xor dword [esp + 0x40], 0x6ae78d37
mov dword [esp + 0x18], 0xbb4
imul eax, dword [esp + 0x18], 0x5a
push 0x6c
pop ecx
mov dword [esp + 0x18], eax
shr dword [esp + 0x18], 0xb
shl dword [esp + 0x18], 1
xor dword [esp + 0x18], 0x43e2
mov dword [esp + 0x78], 0xf7a2
shl dword [esp + 0x78], 8
add dword [esp + 0x78], 0xffff0903
xor dword [esp + 0x78], 0xf6ce1c
mov dword [esp + 0xb4], 0x641
add dword [esp + 0xb4], 0xffffe297
xor dword [esp + 0xb4], 0xffffa17f
mov dword [esp + 0x6c], 0xf996
imul eax, dword [esp + 0x6c], 0x5c
mov dword [esp + 0x6c], eax
add dword [esp + 0x6c], 0x6319
xor dword [esp + 0x6c], 0x5a12e2
mov dword [esp + 0x88], 0x4913
add dword [esp + 0x88], 0x8f67
xor dword [esp + 0x88], 0xda79
mov dword [esp + 0x84], 0x4068
shl dword [esp + 0x84], 5
xor dword [esp + 0x84], 0x867dd
mov dword [esp + 0xd0], 0xd597
xor dword [esp + 0xd0], 0xd8255122
xor dword [esp + 0xd0], 0xd825b0f5
mov dword [esp + 0xac], 0x2838
shr dword [esp + 0xac], 0xa
xor dword [esp + 0xac], 0x3b83
mov dword [esp + 0x20], 0x213
or dword [esp + 0x20], 0x22d3c7de
add dword [esp + 0x20], 0xe616
or dword [esp + 0x20], 0x25f54f3d
xor dword [esp + 0x20], 0x27f588af
mov dword [esp + 0x94], 0xed8e
add dword [esp + 0x94], 0x3ad3
xor dword [esp + 0x94], 0x1080f
mov dword [esp + 0xcc], 0x132e
add dword [esp + 0xcc], 0xffff6554
xor dword [esp + 0xcc], 0xffff657a
mov dword [esp + 0x60], 0xaa5b
imul eax, dword [esp + 0x60], 0x49
mov dword [esp + 0x60], eax
imul eax, dword [esp + 0x60], 0x27
mov dword [esp + 0x60], eax
xor dword [esp + 0x60], 0x766b559
mov dword [esp + 0x8c], 0xbd68
shl dword [esp + 0x8c], 0x10
xor dword [esp + 0x8c], 0xbd682819
mov dword [esp + 0x2c], 0xd95
or dword [esp + 0x2c], 0x625e6673
add dword [esp + 0x2c], 0xffff0306
mov eax, dword [esp + 0x2c]
div ecx
mov dword [esp + 0x2c], eax
xor dword [esp + 0x2c], 0xe93dbb
mov dword [esp + 0x24], 0x9e63
shr dword [esp + 0x24], 0xf
shl dword [esp + 0x24], 9
add dword [esp + 0x24], 0xffff586a
xor dword [esp + 0x24], 0xffff7047
mov dword [esp + 0x34], 0x8794
add dword [esp + 0x34], 0xc466
or dword [esp + 0x34], 0x7dffff77
xor dword [esp + 0x34], 0x7dfeffff
mov dword [esp + 0xa0], 0xead2
shl dword [esp + 0xa0], 8
xor dword [esp + 0xa0], 0xead213
mov dword [esp + 0xb8], 0x96b5
mov ebp, 0x8c70857
or dword [esp + 0xb8], 0x5fadad61
xor dword [esp + 0xb8], 0x5fadbff4
cmp esi, 0x1f9d450b
jg 0x10005acd
je 0x10005a86
cmp esi, ebp
je 0x10005a53
cmp esi, 0xadc6f50
je 0x10005a06
cmp esi, 0x13036e2f
je 0x100059d7
cmp esi, 0x1c20d5d1
je 0x10005986
cmp esi, 0x1c2b48cc
jne 0x10005bae
push dword [esp + 0x74]
push dword [esp + 0x34]
mov eax, dword [0x1001fcd0]
push dword [esp + 0xe0]
add eax, 0x20
push ecx
push dword [esp + 0xec]
push eax
push ecx
push dword [esp + 0x74]
mov edx, dword [esp + 0xbc]
mov ecx, dword [0x1001fcd0]
mov ecx, dword [ecx + 0x10]
call fcn.1000f22d
push dword [esp + 0xd4]
mov esi, eax
push dword [esp + 0x9c]
neg esi
push dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
sbb esi, esi
mov ecx, dword [esp + 0x104]
and esi, 0x16d63cb4
add esi, ebp
call fcn.10016530
add esp, 0x2c
jmp 0x10005bae
mov eax, dword [0x1001fcd0]
add eax, 0x14
push eax
push dword [esp + 0x90]
push dword [esp + 0x68]
push dword [esp + 0xd8]
push dword [esp + 0xa4]
mov eax, dword [0x1001fcd0]
mov edx, dword [esp + 0x34]
push dword [eax + 0x10]
push ecx
push ecx
mov ecx, dword [esp + 0x90]
call fcn.1000c1c5
add esp, 0x20
test eax, eax
jne 0x10005bbc
mov esi, 0x3001a8a0
jmp 0x100058ce
mov eax, dword [esp + 0x68]
mov eax, dword [esp + 0x38]
mov eax, dword [esp + 0x54]
push ecx
push ecx
push 0x24
pop ecx
call fcn.10011b46
mov dword [0x1001fcd0], eax
pop ecx
pop ecx
test eax, eax
je 0x10005bd5
mov esi, 0xadc6f50
jmp 0x100058ce
mov eax, dword [0x1001fcd0]
push ecx
push ecx
add eax, 0x10
push eax
push ecx
push dword [esp + 0x38]
push dword [esp + 0x70]
mov eax, dword [esp + 0xd4]
or eax, dword [esp + 0x98]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0xec]
push eax
call fcn.10013e3a
add esp, 0x1c
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xf7c51d49
add esi, 0x29beec4d
jmp 0x100058ce
mov eax, dword [esp + 0x10]
mov eax, dword [esp + 0xa4]
mov eax, dword [esp + 0xc4]
mov eax, dword [esp + 0x64]
mov eax, dword [0x1001fcd0]
push ecx
push dword [eax + 0x10]
push ecx
push ecx
call fcn.1000e5f3
add esp, 0x10
mov esi, 0x29beec4d
jmp 0x100058ce
push dword [esp + 0xac]
push dword [esp + 0xd4]
push dword [esp + 0x1c]
push dword [esp + 0x90]
mov eax, dword [0x1001fcd0]
mov edx, dword [esp + 0x2c]
push dword [eax + 0x10]
lea ecx, [eax + 0x18]
call fcn.1001acf0
add esp, 0x14
mov esi, eax
neg esi
sbb esi, esi
and esi, 0xe182f80e
add esi, 0x3a9dddc3
jmp 0x100058ce
cmp esi, 0x21840996
je 0x10005b35
cmp esi, 0x29beec4d
je 0x10005bc1
cmp esi, 0x3001a8a0
je 0x10005b15
cmp esi, 0x3a9dddc3
jne 0x10005bae
mov eax, dword [esp + 0x88]
mov eax, dword [esp + 0x6c]
mov eax, dword [0x1001fcd0]
push dword [eax + 0x20]
call fcn.100127a7
pop ecx
mov esi, ebp
jmp 0x100058ce
mov eax, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
mov eax, dword [0x1001fcd0]
push dword [eax + 0x18]
call fcn.100127a7
pop ecx
mov esi, 0x3a9dddc3
jmp 0x100058ce
push dword [esp + 0x50]
push dword [esp + 0x94]
push ecx
push dword [esp + 0xa4]
lea ecx, [esp + 0xe8]
push dword [ebx + 4]
push dword [esp + 0xb4]
push dword [esp + 0xc0]
push dword [esp + 0xcc]
mov eax, dword [esp + 0xd8]
or eax, dword [esp + 0x54]
push eax
push dword [ebx]
lea eax, [esp + 0x104]
push dword [esp + 0x64]
push dword [esp + 0xec]
push dword [esp + 0xac]
mov edx, dword [esp + 0xfc]
push eax
call fcn.1000fbe9
add esp, 0x38
test eax, eax
je 0x10005bac
mov esi, 0x1c2b48cc
jmp 0x100058ce
mov esi, ebp
cmp esi, 0x2601f9b6
jne 0x100058ce
jmp 0x10005bd5
xor edi, edi
inc edi
jmp 0x10005bd5
mov edx, dword [esp + 0x44]
push dword [0x1001fcd0]
mov ecx, dword [esp + 0x50]
call fcn.10018176
pop ecx
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd8
ret