Function at 0x4073e0
Capabilities:
Encrypt data using chaskey

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [esp + 0x44]
mov dword [esp], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 4], eax
mov esi, dword [esp + 0x38]
mov edx, 0x9a7f5f76
cmp edx, 0xe979f5d5
jg 0x407456
cmp edx, 0xcc5ed473
jg 0x40749e
cmp edx, 0x8f7f2451
jle 0x40751b
cmp edx, 0x8f7f2452
je 0x40771a
cmp edx, 0x9a7f5f76
je 0x40772e
cmp edx, 0xbbffccdb
jne 0x4073ff
mov eax, dword [esp + 0x3c]
inc byte [ecx + eax - 1]
mov edx, 0xd4bab5
mov eax, 0x18af06a0
cmove edx, eax
jmp 0x4073ff
cmp edx, 0x12ccfc64
jg 0x4074e2
cmp edx, 0xd4bab4
jle 0x407548
cmp edx, 0xd4bab5
je 0x407744
cmp edx, 0x3ae30ab
je 0x40774e
cmp edx, 0xfcd56fd
jne 0x4073ff
mov edx, 0x3343bb40
xor ecx, ecx
jmp 0x4073ff
cmp edx, 0xd49cb88f
jle 0x407575
cmp edx, 0xd49cb890
je 0x407759
cmp edx, 0xdbb9914a
je 0x40776f
cmp edx, 0xe6e5f7da
jne 0x4073ff
mov edx, 0xd49cb890
xor ecx, ecx
mov eax, dword [esp + 8]
mov dword [esp + 0xc], eax
jmp 0x4073ff
cmp edx, 0x2471c536
jle 0x4076f8
cmp edx, 0x2471c537
je 0x40777a
cmp edx, 0x3343bb40
jne 0x4077ea
cmp ecx, 0x10
mov edx, 0xd0f93df0
mov eax, 0x87ac6c26
cmovb edx, eax
jmp 0x4073ff
cmp edx, 0x8680a56a
je 0x407794
cmp edx, 0x87ac6c26
jne 0x4073ff
mov eax, dword [esp + 0x3c]
mov al, byte [eax + ecx]
mov byte [esp + ecx + 0x10], al
mov edx, 0xe979f5d6
jmp 0x4073ff
cmp edx, 0xe979f5d6
je 0x4077ad
cmp edx, 0xf0cd38ac
jne 0x4073ff
mov al, byte [esp + ecx + 0x10]
mov edx, dword [esp + 4]
xor byte [edx + ecx], al
mov edx, 0xdbb9914a
jmp 0x4073ff
cmp edx, 0xcc5ed474
je 0x4077b8
cmp edx, 0xd0f93df0
jne 0x4073ff
mov eax, 0xf280c040
xor edx, edx
cmp eax, 0xe9678cdd
jg 0x4075c3
cmp eax, 0xd2ff205c
jg 0x4075e5
cmp eax, 0xa4f4981d
je 0x4076e4
cmp eax, 0xbcf92c55
je 0x40762d
cmp eax, 0xc8694b0a
jne 0x407594
inc edx
mov eax, 0x5d230142
jmp 0x407594
cmp eax, 0x349da01d
jg 0x407606
cmp eax, 0xe9678cde
je 0x40763e
cmp eax, 0xf280c040
je 0x407653
cmp eax, 0x6952263
je 0x4076ee
jmp 0x407594
cmp eax, 0xd2ff205d
je 0x407668
cmp eax, 0xd302162f
je 0x4076b4
cmp eax, 0xdb1d35e5
jne 0x407594
inc edx
mov eax, 0xf280c040
jmp 0x407594
cmp eax, 0x5d230142
je 0x4076bf
cmp eax, 0x643cebba
jne 0x4076d4
mov eax, dword [esi + edx*4]
xor dword [esp + edx*4 + 0x10], eax
mov eax, 0xdb1d35e5
jmp 0x407594
mov eax, dword [esi + edx*4]
xor dword [esp + edx*4 + 0x10], eax
mov eax, 0xc8694b0a
jmp 0x407594
cmp edx, 0x10
mov eax, 0x6952263
mov edi, 0xd2ff205d
cmovb eax, edi
jmp 0x407594
cmp edx, 4
mov eax, 0xa4f4981d
mov edi, 0x643cebba
cmovb eax, edi
jmp 0x407594
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
add ebx, eax
rol eax, 5
mov ebp, dword [esp + 0x1c]
xor eax, ebx
mov edi, dword [esp + 0x18]
add edi, ebp
rol ebp, 8
xor ebp, edi
add edi, eax
rol ebx, 0x10
add ebx, ebp
mov dword [esp + 0x10], ebx
rol ebp, 0xd
xor ebp, ebx
mov dword [esp + 0x1c], ebp
rol eax, 7
xor eax, edi
mov dword [esp + 0x14], eax
rol edi, 0x10
mov dword [esp + 0x18], edi
mov eax, 0xd302162f
jmp 0x407594
inc edx
mov eax, 0xe9678cde
jmp 0x407594
cmp edx, 4
mov eax, 0x349da01e
mov edi, 0xbcf92c55
cmovb eax, edi
jmp 0x407594
cmp eax, 0x349da01e
jne 0x407594
jmp 0x4077c2
mov eax, 0xe9678cde
jmp 0x407592
mov eax, 0x5d230142
jmp 0x407592
cmp edx, 0x12ccfc65
je 0x4077d8
cmp edx, 0x18af06a0
jne 0x4073ff
mov edx, 0x3ae30ab
jmp 0x4073ff
test ecx, ecx
mov edx, 0xcc5ed474
mov eax, 0xbbffccdb
cmovg edx, eax
jmp 0x4073ff
cmp dword [esp], 0
mov edx, 0xfcd56fd
mov eax, 0x6ff9fb88
cmove edx, eax
jmp 0x4073ff
mov edx, 0xcc5ed474
jmp 0x4073ff
dec ecx
mov edx, 0x8f7f2452
jmp 0x4073ff
cmp ecx, dword [esp + 0xc]
mov edx, 0x2471c537
mov eax, 0xf0cd38ac
cmovb edx, eax
jmp 0x4073ff
inc ecx
mov edx, 0xd49cb890
jmp 0x4073ff
mov eax, dword [esp + 0xc]
sub dword [esp], eax
add dword [esp + 4], eax
mov edx, 0x8f7f2452
mov ecx, 0x10
jmp 0x4073ff
mov eax, dword [esp]
mov dword [esp + 0x20], eax
mov edx, 0xe6e5f7da
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
jmp 0x4073ff
inc ecx
mov edx, 0x3343bb40
jmp 0x4073ff
mov edx, 0x9a7f5f76
jmp 0x4073ff
cmp dword [esp], 0x11
mov edx, 0x8680a56a
mov eax, 0x12ccfc65
cmovae edx, eax
jmp 0x4073ff
mov dword [esp + 8], 0x10
mov edx, 0xe6e5f7da
jmp 0x4073ff
cmp edx, 0x6ff9fb88
jne 0x4073ff
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret