Function at 0x2500d2
Capabilities:
Encrypt data using chaskey

Disassembly:
sub esp, 0xb7c
mov dword [esp + 0x10c], 0xefc7c7
xor edx, edx
imul eax, dword [esp + 0x10c], 0x7b
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x11c], eax
mov ebp, ecx
xor dword [esp + 0x11c], 0x7334fcb4
mov esi, 0xd8aa953
mov dword [esp + 0x144], 0xd1e7f1
shl dword [esp + 0x144], 0xd
xor dword [esp + 0x144], 0x3cee2000
mov dword [esp + 0xa4], 0x9bf0bc
add dword [esp + 0xa4], 0xfffffb05
add dword [esp + 0xa4], 0xb1a6
xor dword [esp + 0xa4], 0x99010d
mov dword [esp + 0x70], 0x7296e1
mov eax, dword [esp + 0x70]
push 0x69
pop ecx
div ecx
push 0x6d
mov dword [esp + 0x74], eax
xor edx, edx
imul eax, dword [esp + 0x74], 0x50
pop ecx
mov dword [esp + 0x70], eax
shr dword [esp + 0x70], 0xe
xor dword [esp + 0x70], 0x490c0
mov dword [esp + 0x68], 0x2362d2
add dword [esp + 0x68], 0xffff374f
shr dword [esp + 0x68], 4
add dword [esp + 0x68], 0x31a8
xor dword [esp + 0x68], 0xffb88
mov dword [esp + 0xd4], 0x7400f7
add dword [esp + 0xd4], 0xffff7102
xor dword [esp + 0xd4], 0x731c4a
mov dword [esp + 0x124], 0x8ec235
or dword [esp + 0x124], 0x41027e3a
xor dword [esp + 0x124], 0x41886cf4
mov dword [esp + 0xc0], 0xc7caa3
shl dword [esp + 0xc0], 5
xor dword [esp + 0xc0], 0xd8c23a18
xor dword [esp + 0xc0], 0xc0320955
mov dword [esp + 0x110], 0x7f1ffa
or dword [esp + 0x110], 0x46a58a78
xor dword [esp + 0x110], 0x46fbed8d
mov dword [esp + 0x14], 0x12781
add dword [esp + 0x14], 0xffff5705
add dword [esp + 0x14], 0x80ca
imul eax, dword [esp + 0x14], 0x1f
mov dword [esp + 0x14], eax
xor dword [esp + 0x14], 0x1a1833
mov dword [esp + 0x78], 0x597112
or dword [esp + 0x78], 0xa8a51ce7
xor dword [esp + 0x78], 0x58571cb6
xor dword [esp + 0x78], 0xf0a51cc5
mov dword [esp + 0x118], 0x58f787
mov eax, dword [esp + 0x118]
div ecx
mov dword [esp + 0x118], eax
xor dword [esp + 0x118], 0x856be
mov dword [esp + 0x13c], 0x20304a
add dword [esp + 0x13c], 0xffffed9c
xor dword [esp + 0x13c], 0x2c0e66
mov dword [esp + 0x7c], 0x205723
shl dword [esp + 0x7c], 1
or dword [esp + 0x7c], 0x230b2a3c
xor dword [esp + 0x7c], 0x234d294e
mov dword [esp + 0x18], 0xe64b69
add dword [esp + 0x18], 0x1fa6
add dword [esp + 0x18], 0x4358
shr dword [esp + 0x18], 0xa
xor dword [esp + 0x18], 0x66336
mov dword [esp + 0x84], 0x99375d
imul eax, dword [esp + 0x84], 0x23
mov dword [esp + 0x84], eax
imul eax, dword [esp + 0x84], 0xf
mov dword [esp + 0x84], eax
xor dword [esp + 0x84], 0x3a306e62
xor edx, edx
mov dword [esp + 0x120], 0xed0d49
shl dword [esp + 0x120], 5
xor dword [esp + 0x120], 0x1dad89ec
mov dword [esp + 0x134], 0xd77f47
or dword [esp + 0x134], 0xe47880ef
xor dword [esp + 0x134], 0xe4f46f87
mov dword [esp + 0x28], 0x1347ac
imul eax, dword [esp + 0x28], 0x32
push 0x29
pop ecx
push 0x46
mov dword [esp + 0x2c], eax
imul eax, dword [esp + 0x2c], 0x6b
mov dword [esp + 0x2c], eax
shl dword [esp + 0x2c], 2
xor dword [esp + 0x2c], 0x4bad18c3
mov dword [esp + 0x98], 0x32e67b
mov eax, dword [esp + 0x98]
div ecx
xor edx, edx
mov dword [esp + 0x98], eax
shl dword [esp + 0x98], 7
xor dword [esp + 0x98], 0x94c9de
mov dword [esp + 0x90], 0x98ef44
xor dword [esp + 0x90], 0x6fa69100
or dword [esp + 0x90], 0x44f3dc00
xor dword [esp + 0x90], 0x6ff2017f
mov dword [esp + 0x24], 0x8b06ed
add dword [esp + 0x24], 0xffff884d
mov eax, dword [esp + 0x24]
pop ecx
div ecx
mov dword [esp + 0x20], eax
imul eax, dword [esp + 0x20], 0x13
mov dword [esp + 0x20], eax
xor dword [esp + 0x20], 0x2b291b
mov dword [esp + 0xec], 0x7b6729
shr dword [esp + 0xec], 0xd
xor dword [esp + 0xec], 0x505d2
mov dword [esp + 0xe4], 0xd8e092
add dword [esp + 0xe4], 0x743
xor dword [esp + 0xe4], 0xd7a9ad
mov dword [esp + 0x74], 0x5a83d
shl dword [esp + 0x74], 2
shl dword [esp + 0x74], 0xa
xor dword [esp + 0x74], 0x5a828ccd
mov dword [esp + 0xdc], 0xe5aeb5
shr dword [esp + 0xdc], 5
xor dword [esp + 0xdc], 0xf0e89
mov dword [esp + 0x9c], 0xdd3005
or dword [esp + 0x9c], 0xdd58dfb2
imul eax, dword [esp + 0x9c], 0x3d
mov dword [esp + 0x9c], eax
xor dword [esp + 0x9c], 0xdde098cd
mov dword [esp + 0xfc], 0x5e039f
or dword [esp + 0xfc], 0x30b9894f
xor dword [esp + 0xfc], 0x30fe8bc6
mov dword [esp + 0xf4], 0xfd4db9
shl dword [esp + 0xf4], 4
xor dword [esp + 0xf4], 0xfd1d76c
mov dword [esp + 0x38], 0xeba08a
xor dword [esp + 0x38], 0x6494484d
imul eax, dword [esp + 0x38], 5
mov dword [esp + 0x38], eax
xor dword [esp + 0x38], 0xec28cc18
xor dword [esp + 0x38], 0x1a582c3a
mov dword [esp + 0x30], 0x66df61
shr dword [esp + 0x30], 0xf
imul eax, dword [esp + 0x30], 0x7b
mov dword [esp + 0x30], eax
add dword [esp + 0x30], 0xca26
xor dword [esp + 0x30], 0xc499
mov dword [esp + 0xb0], 0x490d9b
add dword [esp + 0xb0], 0x5881
add dword [esp + 0xb0], 0xffffb7b9
xor dword [esp + 0xb0], 0x487df6
mov dword [esp + 0x48], 0xa51382
imul eax, dword [esp + 0x48], 0x5b
mov dword [esp + 0x48], eax
or dword [esp + 0x48], 0x60f97ab3
xor edx, edx
add dword [esp + 0x48], 0xffff7578
xor dword [esp + 0x48], 0x7afee331
mov dword [esp + 0x104], 0x623fba
add dword [esp + 0x104], 0xffff5ee9
xor dword [esp + 0x104], 0x672c5a
mov dword [esp + 0x40], 0xef54be
xor dword [esp + 0x40], 0x7039d8dc
shr dword [esp + 0x40], 1
shl dword [esp + 0x40], 3
xor dword [esp + 0x40], 0xc35fb5e0
mov dword [esp + 0x6c], 0x9f860f
imul eax, dword [esp + 0x6c], 0x73
push 0x63
pop ecx
push 0xb
mov dword [esp + 0x70], eax
add dword [esp + 0x70], 0xffff3787
add dword [esp + 0x70], 0xb1a
xor dword [esp + 0x70], 0x47a01710
mov dword [esp + 0x104], 0x37b52
imul eax, dword [esp + 0x104], 0x25
mov dword [esp + 0x104], eax
xor dword [esp + 0x104], 0x8ca83a
mov dword [esp + 0x38], 0x5c6a40
add dword [esp + 0x38], 0xffffb809
or dword [esp + 0x38], 0xbafaf4f3
xor dword [esp + 0x38], 0xf4ee7889
xor dword [esp + 0x38], 0x4e1ac129
mov dword [esp + 0xa4], 0xf884a
shr dword [esp + 0xa4], 7
or dword [esp + 0xa4], 0xff8419e6
xor dword [esp + 0xa4], 0xff8016de
mov dword [esp + 0x68], 0x7434c6
shr dword [esp + 0x68], 0xf
xor dword [esp + 0x68], 0x8c26db17
or dword [esp + 0x68], 0xe33fb7f8
xor dword [esp + 0x68], 0xef3ecca6
mov dword [esp + 0xc0], 0xc105b1
add dword [esp + 0xc0], 0x1d15
shl dword [esp + 0xc0], 5
xor dword [esp + 0xc0], 0x182b172a
mov dword [esp + 0x40], 0xae1916
add dword [esp + 0x40], 0xffff8523
add dword [esp + 0x40], 0x890a
add dword [esp + 0x40], 0xffff9dfd
xor dword [esp + 0x40], 0xa19d39
mov dword [esp + 0x58], 0xd4faa1
shr dword [esp + 0x58], 6
mov eax, dword [esp + 0x58]
div ecx
xor edx, edx
mov dword [esp + 0x58], eax
shr dword [esp + 0x58], 0xc
xor dword [esp + 0x58], 0xf0ffb
mov dword [esp + 0x10c], 0x33fe78
or dword [esp + 0x10c], 0x992be012
xor dword [esp + 0x10c], 0x993ff920
mov dword [esp + 0x14c], 0x9865fb
or dword [esp + 0x14c], 0x3d3c00ce
xor dword [esp + 0x14c], 0x3dbf126a
mov dword [esp + 0x118], 0xfa96d9
xor dword [esp + 0x118], 0x45ef7522
xor dword [esp + 0x118], 0x45103a9c
mov dword [esp + 0x64], 0xa888bb
or dword [esp + 0x64], 0xb2110569
xor dword [esp + 0x64], 0x3559c292
xor dword [esp + 0x64], 0xa5f97bad
xor dword [esp + 0x64], 0x22192ec3
mov dword [esp + 0xbc], 0x574361
imul eax, dword [esp + 0xbc], 0x52
pop ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
div ecx
mov dword [esp + 0xb8], eax
xor dword [esp + 0xb8], 0x28c3ea8
mov dword [esp + 0x58], 0x2cb5d5
imul eax, dword [esp + 0x58], 0x4e
mov dword [esp + 0x58], eax
add dword [esp + 0x58], 0xdae9
xor edx, edx
shr dword [esp + 0x58], 0xd
xor dword [esp + 0x58], 0xd224b
mov dword [esp + 0x50], 0xc47e47
add dword [esp + 0x50], 0x89c0
or dword [esp + 0x50], 0x803a2f39
add dword [esp + 0x50], 0xffff55ce
xor dword [esp + 0x50], 0x80f8c63c
mov dword [esp + 0x10c], 0xde4274
shl dword [esp + 0x10c], 0x10
xor dword [esp + 0x10c], 0x427ca22c
mov dword [esp + 0x138], 0x13c1c
shr dword [esp + 0x138], 0xb
xor dword [esp + 0x138], 0x4d2c5
mov dword [esp + 0xe0], 0x81d336
add dword [esp + 0xe0], 0x25a3
xor dword [esp + 0xe0], 0x825903
mov dword [esp + 0x12c], 0xb02b4d
shl dword [esp + 0x12c], 0xc
xor dword [esp + 0x12c], 0x2ba5d61
mov dword [esp + 0xa8], 0x674ad
add dword [esp + 0xa8], 0xffff74bf
shr dword [esp + 0xa8], 0xf
xor dword [esp + 0xa8], 0x30a5f
mov dword [esp + 0xcc], 0x610316
imul eax, dword [esp + 0xcc], 0x64
push 0x19
pop ecx
push 0x65
mov dword [esp + 0xd0], eax
add dword [esp + 0xd0], 0xffffa25d
xor dword [esp + 0xd0], 0x25e68115
mov dword [esp + 0x20], 0x313f85
mov eax, dword [esp + 0x20]
div ecx
xor edx, edx
mov dword [esp + 0x20], eax
imul eax, dword [esp + 0x20], 0x3d
pop ecx
push 0x5e
mov dword [esp + 0x20], eax
or dword [esp + 0x20], 0x8449bcdf
xor dword [esp + 0x20], 0x847286ca
mov dword [esp + 0x8c], 0x8d6fcd
imul eax, dword [esp + 0x8c], 0x24
mov dword [esp + 0x8c], eax
add dword [esp + 0x8c], 0xffffa9dd
xor dword [esp + 0x8c], 0x13e6e05c
mov dword [esp + 0xec], 0x65a2f2
shl dword [esp + 0xec], 6
xor dword [esp + 0xec], 0x1963b4c7
mov dword [esp + 0xdc], 0xd62ccd
add dword [esp + 0xdc], 0x9dc3
xor dword [esp + 0xdc], 0xd4e73b
mov dword [esp + 0x12c], 0xf7bedb
add dword [esp + 0x12c], 0xffff0130
xor dword [esp + 0x12c], 0xf27c89
mov dword [esp + 0x94], 0x8bd0e9
shl dword [esp + 0x94], 8
xor dword [esp + 0x94], 0x8cafb4cf
xor dword [esp + 0x94], 0x77c2f02
mov dword [esp + 0x60], 0x1407e3
add dword [esp + 0x60], 0xffff69b0
or dword [esp + 0x60], 0x8ae82503
imul eax, dword [esp + 0x60], 0x34
mov dword [esp + 0x60], eax
xor dword [esp + 0x60], 0x3b184ff6
mov dword [esp + 0x134], 0x7a01f5
shr dword [esp + 0x134], 8
xor dword [esp + 0x134], 0x2dc96
mov dword [esp + 0xc8], 0x2cd71b
shr dword [esp + 0xc8], 0xb
xor dword [esp + 0xc8], 0x4c53602f
xor dword [esp + 0xc8], 0x4c51ae6a
mov dword [esp + 0x30], 0xe08cc9
mov eax, dword [esp + 0x30]
div ecx
xor edx, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
pop ecx
div ecx
push 0x59
mov dword [esp + 0x30], eax
xor edx, edx
shr dword [esp + 0x30], 2
xor dword [esp + 0x30], 0xe2bd
mov dword [esp + 0x9c], 0x2bc406
shr dword [esp + 0x9c], 4
xor dword [esp + 0x9c], 0x8b98372d
xor dword [esp + 0x9c], 0x8b9fe767
mov dword [esp + 0xfc], 0x2b57e5
imul eax, dword [esp + 0xfc], 0x19
pop ecx
mov dword [esp + 0xf8], eax
xor dword [esp + 0xf8], 0x4360c42
mov dword [esp + 0xb4], 0xc7ab97
xor dword [esp + 0xb4], 0xb91c9975
or dword [esp + 0xb4], 0x79817c3c
xor dword [esp + 0xb4], 0xf9d6496a
mov dword [esp + 0x4c], 0xac8066
shr dword [esp + 0x4c], 0xa
add dword [esp + 0x4c], 0xa65c
or dword [esp + 0x4c], 0x554928f0
xor dword [esp + 0x4c], 0x5548ec09
mov dword [esp + 0x24], 0xc3e26d
add dword [esp + 0x24], 0xffff917b
mov eax, dword [esp + 0x24]
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0xab47
xor dword [esp + 0x24], 0xce157d
mov dword [esp + 0x140], 0x63c239
shr dword [esp + 0x140], 5
xor dword [esp + 0x140], 0xbb0d0
mov dword [esp + 0x80], 0x978434
add dword [esp + 0x80], 0x695f
or dword [esp + 0x80], 0x6b2b7d6b
xor dword [esp + 0x80], 0x6bb76690
mov dword [esp + 0x44], 0xabc063
shr dword [esp + 0x44], 0xd
add dword [esp + 0x44], 0xd74c
or dword [esp + 0x44], 0xdea10ccb
xor dword [esp + 0x44], 0xdeaddc5c
mov dword [esp + 0xac], 0x37ea37
add dword [esp + 0xac], 0xffffaa62
xor dword [esp + 0xac], 0x9d7b3ea5
xor dword [esp + 0xac], 0x9d411193
mov dword [esp + 0xf0], 0xf29fb6
or dword [esp + 0xf0], 0x4847d168
xor dword [esp + 0xf0], 0x48fdf87a
mov dword [esp + 0xd0], 0x4c40a6
add dword [esp + 0xd0], 0xffffcf42
imul eax, dword [esp + 0xd0], 0x45
mov dword [esp + 0xd0], eax
xor dword [esp + 0xd0], 0x148cab1e
mov dword [esp + 0xc8], 0x32e171
shl dword [esp + 0xc8], 0xc
mov eax, dword [esp + 0xc8]
div ecx
mov dword [esp + 0xc8], eax
xor dword [esp + 0xc8], 0x8ca509
mov eax, dword [esp + 0xa4]
call fcn.0024fde3
mov edi, dword [esp + 0xd4]
mov ebx, eax
mov eax, 0x86b66ab
cmp esi, 0xb63e674
jg 0x250fc6
je 0x250ea0
cmp esi, 0x40acb60
je 0x250e19
cmp esi, 0x70751a7
je 0x250dd8
cmp esi, 0x7bf24cf
je 0x250daf
cmp esi, eax
je 0x250d21
cmp esi, 0x9d08599
jne 0x2510d2
push dword [esp + 0xf0]
push dword [esp + 0xb0]
mov edx, dword [esp + 0x4c]
push dword [esp + 0x154]
mov ecx, dword [esp + 0x8c]
call fcn.00252f07
add esp, 0xc
mov esi, 0xff10fd9
jmp 0x250ca7
push dword [esp + 0xa8]
push dword [esp + 0x130]
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0x140]
push 0x231810
call fcn.002338fd
add esp, 0xc
lea ecx, [esp + 0x570]
mov esi, eax
lea eax, [esp + 0x160]
push dword [esp + 0xe8]
push eax
lea eax, [esp + 0x988]
push eax
push dword [esp + 0x94]
push edi
push dword [esp + 0x30]
push esi
push dword [esp + 0xe8]
call fcn.002421a8
push dword [esp + 0x7c]
push esi
push dword [esp + 0xb8]
mov edx, dword [esp + 0x154]
mov ecx, dword [esp + 0x104]
call fcn.0024d172
add esp, 0x2c
mov esi, 0x70751a7
jmp 0x250ca7
push dword [esp + 0x140]
push dword [esp + 0x28]
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0xbc]
push edi
call fcn.00252f07
add esp, 0xc
mov esi, 0x9d08599
jmp 0x250ca7
push 0
push 0
push dword [esp + 0x100]
lea eax, [esp + 0x57c]
push 1
push eax
push dword [esp + 0xac]
push dword [esp + 0x44]
mov edx, dword [esp + 0xe0]
push ecx
mov ecx, dword [esp + 0x150]
call fcn.002325ac
add esp, 0x20
mov esi, 0x7bf24cf
jmp 0x250ca7
mov eax, dword [esp + 0x100]
mov eax, dword [esp + 0x6c]
call fcn.0023c291
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0x34]
push eax
mov dword [esp + 0x15c], eax
call fcn.0024f15a
push dword [esp + 0x14c]
lea edx, [esp + 0x15c]
push dword [esp + 0x110]
lea eax, [eax*2 + 2]
push dword [esp + 0x60]
mov dword [esp + 0x16c], eax
push ebx
push ecx
push dword [esp + 0x15c]
mov ecx, ebx
push dword [esp + 0x58]
push ebx
push dword [esp + 0xe0]
push dword [esp + 0x8c]
call fcn.0024bb17
add esp, 0x2c
test eax, eax
je 0x251009
mov esi, 0xd90f513
jmp 0x250ca7
push dword [esp + 0x78]
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x36c]
push ecx
mov ecx, dword [esp + 0x118]
push eax
call fcn.002390e9
add esp, 0xc
lea eax, [esp + 0x368]
push dword [esp + 0x7c]
mov edx, dword [esp + 0x140]
mov ecx, dword [esp + 0x11c]
push eax
call fcn.002373ed
push dword [esp + 0x13c]
xor ecx, ecx
push dword [esp + 0x12c]
mov word [eax], cx
lea ecx, [esp + 0x788]
push dword [esp + 0x94]
mov edx, dword [esp + 0x2c]
call fcn.0024080d
add esp, 0x14
push dword [esp + 0x20]
push dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
mov ecx, dword [esp + 0x30]
push 0x231720
call fcn.002338fd
add esp, 0xc
lea edx, [esp + 0x778]
mov esi, eax
lea eax, [esp + 0x368]
push dword [esp + 0x9c]
push ecx
push dword [esp + 0xe4]
push dword [esp + 0x80]
push esi
push eax
push dword [esp + 0xfc]
mov ecx, dword [esp + 0x108]
lea eax, [esp + 0x17c]
push eax
call fcn.0023be96
push dword [esp + 0x50]
push esi
push dword [esp + 0x60]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x128]
call fcn.0024d172
add esp, 0x2c
lea eax, [esp + 0x160]
push dword [esp + 0x40]
push dword [esp + 0x108]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0xb8]
push eax
push ebp
call fcn.0023e654
add esp, 0x10
test eax, eax
je 0x251009
mov esi, 0x40acb60
jmp 0x250ca7
cmp esi, 0xd8aa953
je 0x25108c
cmp esi, 0xd90f513
je 0x251056
cmp esi, 0xea3a4f3
je 0x251014
cmp esi, 0xff10fd9
jne 0x2510d2
mov edx, dword [esp + 0xc8]
push dword [esp + 0x154]
mov ecx, dword [esp + 0xd4]
call fcn.00237b3d
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb7c
ret
push dword [esp + 0x10c]
push dword [esp + 0x54]
mov edx, dword [esp + 0x60]
push dword [esp + 0x158]
mov ecx, dword [esp + 0xc4]
push dword [esp + 0x158]
call fcn.0023bf7c
mov edi, eax
add esp, 0x10
test edi, edi
mov esi, 0x9d08599
mov eax, 0x86b66ab
cmovne esi, eax
jmp 0x250cac
lea eax, [esp + 0x14c]
push eax
push dword [esp + 0x64]
mov ecx, dword [esp + 0x11c]
lea edx, [esp + 0x15c]
call fcn.0024e822
neg eax
pop ecx
sbb esi, esi
and esi, 0xfeb2951a
pop ecx
add esi, 0xff10fd9
jmp 0x250ca7
push dword [esp + 0xc0]
lea eax, [esp + 0x984]
push dword [esp + 0x120]
push eax
push dword [esp + 0x130]
push ecx
push ecx
push dword [esp + 0xec]
push dword [esp + 0x84]
mov edx, dword [esp + 0x90]
call fcn.00246762
add esp, 0x20
mov esi, 0xb63e674
mov eax, 0x86b66ab
cmp esi, 0x839946a
jne 0x250cac
jmp 0x251009