Function at 0x29a9f26
Capabilities:
Encrypt data using chaskey
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x2c4
and dword [esp + 0xa0], 0
mov dword [esp + 0x34], 0xdd8d
imul eax, dword [esp + 0x34], 0x23
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x44], eax
mov ebp, ecx
add dword [esp + 0x44], 0xffff9959
mov esi, 0x24c13d8
xor dword [esp + 0x44], 0x21de3a0
mov dword [esp + 0x5c], 0xe73d
or dword [esp + 0x5c], 0xb5796557
shr dword [esp + 0x5c], 0xa
xor dword [esp + 0x5c], 0x2d41ee
mov dword [esp + 0xa0], 0xbe76
mov eax, dword [esp + 0xa0]
mov dword [esp + 0xb4], edx
xor edx, edx
push 0x52
pop ecx
div ecx
push 0x23
mov dword [esp + 0xa4], eax
xor edx, edx
xor dword [esp + 0xa4], 0x5ff1
mov dword [esp + 0x18], 0xa17e
imul eax, dword [esp + 0x18], 0x69
pop ecx
push 0x3f
mov dword [esp + 0x18], eax
or dword [esp + 0x18], 0xe08f8e6
mov eax, dword [esp + 0x18]
div ecx
xor edx, edx
mov dword [esp + 0x18], eax
xor dword [esp + 0x18], 0x68cb66
mov dword [esp + 0x54], 0x34c0
add dword [esp + 0x54], 0x70a3
add dword [esp + 0x54], 0x40ae
xor dword [esp + 0x54], 0x9b7e
mov dword [esp + 0x80], 0xde74
mov eax, dword [esp + 0x80]
pop ecx
div ecx
push 0x6d
mov dword [esp + 0x80], eax
xor edx, edx
xor dword [esp + 0x80], 0x3c71
mov dword [esp + 0x7c], 0x5c78
or dword [esp + 0x7c], 0xf5e8530e
shr dword [esp + 0x7c], 0xc
xor dword [esp + 0x7c], 0xf2fa4
mov dword [esp + 0xb0], 0x4623
shr dword [esp + 0xb0], 0x10
xor dword [esp + 0xb0], 0x7be0
mov dword [esp + 0x70], 0xd669
add dword [esp + 0x70], 0x86d1
mov eax, dword [esp + 0x70]
pop ecx
div ecx
push 0x7d
mov dword [esp + 0x70], eax
xor edx, edx
xor dword [esp + 0x70], 0x3b93
mov dword [esp + 0x8c], 0x197e
or dword [esp + 0x8c], 0x3a7732d9
xor dword [esp + 0x8c], 0x3a7711d9
mov dword [esp + 0x84], 0xd9ec
xor dword [esp + 0x84], 0x899281b3
xor dword [esp + 0x84], 0x89926e0d
mov dword [esp + 0x28], 0x4283
or dword [esp + 0x28], 0xa92ad4a4
mov eax, dword [esp + 0x28]
pop ecx
div ecx
mov dword [esp + 0x24], eax
or dword [esp + 0x24], 0x5aeb0941
xor dword [esp + 0x24], 0x5bfb5b45
mov dword [esp + 0x34], 0xac6a
shl dword [esp + 0x34], 5
xor edx, edx
xor dword [esp + 0x34], 0xf5b1a26a
xor dword [esp + 0x34], 0xf5a41097
mov dword [esp + 0x60], 0xa8cc
imul eax, dword [esp + 0x60], 0x5c
push 0x1b
pop ecx
push 0x19
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x64]
div ecx
xor edx, edx
mov dword [esp + 0x64], eax
xor dword [esp + 0x64], 0x221c2
mov dword [esp + 0x5c], 0x1577
shr dword [esp + 0x5c], 5
or dword [esp + 0x5c], 0xe97398eb
xor dword [esp + 0x5c], 0xe973bcf1
mov dword [esp + 0x14], 0xa6d2
shl dword [esp + 0x14], 8
mov eax, dword [esp + 0x14]
pop ecx
div ecx
push 0x39
mov dword [esp + 0x14], eax
xor edx, edx
imul eax, dword [esp + 0x14], 0x60
pop ecx
push 0x48
pop edi
mov dword [esp + 0x10], eax
xor dword [esp + 0x10], 0x280ae01
mov dword [esp + 0x2c], 0xdd3a
shr dword [esp + 0x2c], 2
shr dword [esp + 0x2c], 0xf
shr dword [esp + 0x2c], 5
xor dword [esp + 0x2c], 0x70fc
mov dword [esp + 0x1c], 0x3601
xor dword [esp + 0x1c], 0xaf0db3b0
add dword [esp + 0x1c], 0xfffffea4
shr dword [esp + 0x1c], 0x10
xor dword [esp + 0x1c], 0xf702
mov dword [esp + 0x18], 0x33ab
mov eax, dword [esp + 0x18]
div ecx
xor edx, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x18], eax
add dword [esp + 0x18], 0xffff0cd2
xor dword [esp + 0x18], 0xffff6929
mov dword [esp + 0x8c], 0xd379
mov eax, dword [esp + 0x8c]
div edi
mov dword [esp + 0x8c], eax
xor dword [esp + 0x8c], 0x761e
mov dword [esp + 0x84], 0x32dd
shl dword [esp + 0x84], 0xd
xor dword [esp + 0x84], 0x65bddae
mov dword [esp + 0x9c], 0x6f28
shl dword [esp + 0x9c], 0xf
xor dword [esp + 0x9c], 0x3794410c
mov dword [esp + 0x20], 0x19c0
shl dword [esp + 0x20], 7
add dword [esp + 0x20], 0xffff2f0c
shr dword [esp + 0x20], 3
xor dword [esp + 0x20], 0x1da06
mov dword [esp + 0x94], 0x9fee
add dword [esp + 0x94], 0x5824
xor dword [esp + 0x94], 0xc2cb
mov dword [esp + 0x70], 0x3eb0
add dword [esp + 0x70], 0xffff895e
add dword [esp + 0x70], 0xa6b4
xor dword [esp + 0x70], 0x2daa
mov dword [esp + 0x68], 0x89f
shr dword [esp + 0x68], 8
add dword [esp + 0x68], 0xffff3824
xor dword [esp + 0x68], 0xffff14b2
mov dword [esp + 0x28], 0x23dc
add dword [esp + 0x28], 0x8c46
or dword [esp + 0x28], 0xff84a897
xor edx, edx
shl dword [esp + 0x28], 0xe
xor dword [esp + 0x28], 0x2e2db8f6
mov dword [esp + 0xa8], 0xade3
add dword [esp + 0xa8], 0xffff1304
xor dword [esp + 0xa8], 0xfffffc02
mov dword [esp + 0x54], 0x6b5c
shr dword [esp + 0x54], 3
mov eax, dword [esp + 0x54]
push 0x37
pop ecx
div ecx
xor edx, edx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x54], eax
xor dword [esp + 0x54], 0x7708
mov dword [esp + 0x64], 0x24bc
mov eax, dword [esp + 0x64]
div edi
mov edi, dword [esp + 0xb4]
mov dword [esp + 0x64], eax
or dword [esp + 0x64], 0xf7e5cb91
xor dword [esp + 0x64], 0xf7e5b05b
mov dword [esp + 0x90], 0xcf20
imul eax, dword [esp + 0x90], 0x1a
mov dword [esp + 0x90], eax
xor dword [esp + 0x90], 0x15785b
mov dword [esp + 0x4c], 0x1c07
add dword [esp + 0x4c], 0xd1cc
xor dword [esp + 0x4c], 0xae1d0781
xor dword [esp + 0x4c], 0xae1da42f
mov dword [esp + 0x98], 0xa954
imul eax, dword [esp + 0x98], 0x4d
mov dword [esp + 0x98], eax
xor dword [esp + 0x98], 0x32ac4f
mov dword [esp + 0x3c], 0x4c9d
shl dword [esp + 0x3c], 0xf
xor dword [esp + 0x3c], 0x37760e34
xor dword [esp + 0x3c], 0x1138f823
mov dword [esp + 0x74], 0x10e9
xor dword [esp + 0x74], 0x5d0fdd01
or dword [esp + 0x74], 0xe272904c
xor dword [esp + 0x74], 0xff7fa683
mov dword [esp + 0x48], 0x3f95
shr dword [esp + 0x48], 4
shl dword [esp + 0x48], 0xa
xor dword [esp + 0x48], 0xf8476
mov dword [esp + 0xa4], 0x5641
imul eax, dword [esp + 0xa4], 0xb
mov dword [esp + 0xa4], eax
xor dword [esp + 0xa4], 0x3c027
mov dword [esp + 0x40], 0xf94f
xor dword [esp + 0x40], 0x9fedc1f1
shr dword [esp + 0x40], 9
xor dword [esp + 0x40], 0x4fc049
mov dword [esp + 0x30], 0xd711
add dword [esp + 0x30], 0xffff7ce9
shl dword [esp + 0x30], 8
shr dword [esp + 0x30], 0xd
xor dword [esp + 0x30], 0x1231
mov dword [esp + 0x38], 0x43cf
shl dword [esp + 0x38], 8
add dword [esp + 0x38], 0x350a
xor dword [esp + 0x38], 0x44682c
mov eax, 0x31f618da
mov ecx, 0x26f6ab5a
cmp esi, 0x1e68dd33
jg 0x29aa62d
je 0x29aa5af
cmp esi, 0xabaea2
je 0x29aa565
cmp esi, 0x24c13d8
je 0x29aa536
cmp esi, 0x14c6cf44
je 0x29aa780
cmp esi, 0x1b648f2c
jne 0x29aa76f
mov eax, dword [esp + 0x7c]
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x78]
call fcn.029ae3fa
mov esi, eax
call fcn.029b1c1f
cmp esi, eax
mov ebx, 0x143000c6
mov eax, 0x31f618da
mov esi, 0xabaea2
cmovne ebx, eax
jmp 0x29aa4c9
mov eax, dword [esp + 0x14]
mov eax, dword [esp + 0xa0]
mov eax, dword [esp + 0x5c]
push ecx
push ecx
push 0x54
pop edx
call fcn.029a7107
mov edi, eax
pop ecx
pop ecx
test edi, edi
je 0x29aa65a
mov esi, 0x1b648f2c
jmp 0x29aa4c4
cmp ebx, eax
jne 0x29aa5a5
push ecx
push dword [esp + 0x8c]
lea edx, [esp + 0xb8]
push dword [esp + 0x4c]
push dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0xc0]
call fcn.029a307e
add esp, 0x14
neg eax
sbb esi, esi
and esi, 0x1f5a4e79
add esi, 0x14c6cf44
jmp 0x29aa4c4
mov esi, 0x34211dbd
jmp 0x29aa4ce
lea eax, [esp + 0xb8]
push eax
push dword [esp + 0x50]
lea eax, [esp + 0xd0]
push 0
push dword [esp + 0x9c]
push dword [esp + 0x74]
push eax
push dword [esp + 0x6c]
mov edx, dword [esp + 0xc4]
push ecx
xor ecx, ecx
call fcn.029a74e3
add esp, 0x20
test eax, eax
je 0x29aa623
push dword [esp + 0x74]
push dword [esp + 0x40]
mov edx, dword [esp + 0xa0]
mov ecx, dword [esp + 0xc0]
call fcn.029ab028
push dword [esp + 0x48]
push dword [esp + 0xb0]
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0xcc]
call fcn.029ab028
add esp, 0x10
mov esi, 0x3ad9f4f5
jmp 0x29aa4c4
cmp esi, ecx
je 0x29aa6cf
cmp esi, 0x34211dbd
je 0x29aa665
cmp esi, 0x3ad9f4f5
jne 0x29aa76f
mov dword [edi + 0x28], ebp
mov eax, dword [0x1001d9f0]
mov dword [edi + 0x18], eax
mov dword [0x1001d9f0], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c4
ret
mov edx, dword [esp + 0xb4]
lea eax, [esp + 0xc8]
push eax
push 0x1001d1a0
mov ecx, ebp
call fcn.029aa794
pop ecx
test eax, eax
mov eax, 0x31f618da
pop ecx
je 0x29aa69f
cmp ebx, eax
mov esi, 0x1e68dd33
mov ecx, 0x26f6ab5a
cmove esi, ecx
jmp 0x29aa4ce
cmp ebx, eax
jne 0x29aa6c5
push dword [esp + 0x34]
push dword [esp + 0x28]
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0xb8]
call fcn.029ab028
pop ecx
pop ecx
mov eax, 0x31f618da
mov esi, 0x14c6cf44
jmp 0x29aa4c9
push ecx
lea eax, [esp + 0xcc]
push eax
push dword [esp + 0xb8]
push dword [esp + 0x28]
push dword [esp + 0x3c]
push dword [esp + 0x24]
push dword [esp + 0x70]
mov edx, dword [esp + 0x7c]
push ecx
lea ecx, [esp + 0xd8]
call fcn.029aed6a
add esp, 0x20
test eax, eax
je 0x29aa746
push dword [esp + 0x84]
push dword [esp + 0x90]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0xc0]
call fcn.029ab028
push dword [esp + 0x9c]
push dword [esp + 0x2c]
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xcc]
call fcn.029ab028
add esp, 0x10
push dword [esp + 0x28]
push dword [esp + 0x6c]
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0xb8]
call fcn.029ab028
pop ecx
pop ecx
mov esi, 0x3ad9f4f5
mov eax, 0x31f618da
mov ecx, 0x26f6ab5a
cmp esi, 0xb96f4ac
jne 0x29aa4ce
jmp 0x29aa65a
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
push edi
call fcn.029b8f59
pop ecx
jmp 0x29aa65a