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

Disassembly:
sub esp, 0xc38
push ebx
push ebp
push esi
push edi
push dword [esp + 0xc54]
mov edi, dword [esp + 0xc54]
mov esi, edx
push edi
push dword [esp + 0xc54]
xor eax, eax
mov dword [esp + 0x118], esi
push esi
inc eax
push eax
call fcn.029a561e
mov dword [esp + 0x78], 0x5685
add esp, 0x14
xor dword [esp + 0x64], 0x44acff3b
xor edx, edx
shr dword [esp + 0x64], 0xf
xor ebx, ebx
xor dword [esp + 0x64], 0xbfe9
mov ecx, 0x3198d9d7
mov dword [esp + 0x8c], 0xf328
or dword [esp + 0x8c], 0x78f5fe0
add dword [esp + 0x8c], 0x438b
xor dword [esp + 0x8c], 0x7906903
mov dword [esp + 0xe4], 0x83b6
or dword [esp + 0xe4], 0x5ecc6335
xor dword [esp + 0xe4], 0x5ecc92df
mov dword [esp + 0xf4], 0x88dc
add dword [esp + 0xf4], 0x1dee
xor dword [esp + 0xf4], 0xae33
mov dword [esp + 0x7c], 0x13e1
shl dword [esp + 0x7c], 2
add dword [esp + 0x7c], 0xffffdb77
xor dword [esp + 0x7c], 0x2c06
mov dword [esp + 0x1c], 0x97d0
shr dword [esp + 0x1c], 6
add dword [esp + 0x1c], 0xdc3e
imul eax, dword [esp + 0x1c], 6
push 0x27
pop ebp
mov dword [esp + 0x114], ebx
mov dword [esp + 0x1c], eax
xor dword [esp + 0x1c], 0x51b78
mov dword [esp + 0x9c], 0xdef8
or dword [esp + 0x9c], 0x2263462c
add dword [esp + 0x9c], 0x420d
xor dword [esp + 0x9c], 0x226436cc
mov dword [esp + 0x104], 0xd1b2
mov eax, dword [esp + 0x104]
div ebp
mov dword [esp + 0x104], eax
xor dword [esp + 0x104], 0x5283
mov dword [esp + 0xac], 0x8cdb
or dword [esp + 0xac], 0x3206086f
add dword [esp + 0xac], 0xffff0baf
xor dword [esp + 0xac], 0x3205e886
mov dword [esp + 0xec], 0x352e
imul eax, dword [esp + 0xec], 0x31
mov dword [esp + 0xec], eax
xor dword [esp + 0xec], 0xa781a
mov dword [esp + 0x84], 0xc62c
shl dword [esp + 0x84], 0xd
xor dword [esp + 0x84], 0x261f7cd9
xor dword [esp + 0x84], 0x3eda98f2
mov dword [esp + 0xd4], 0xadaf
add dword [esp + 0xd4], 0xe4a6
xor dword [esp + 0xd4], 0x1b5ec
mov dword [esp + 0xb8], 0xb583
or dword [esp + 0xb8], 0xde88e11d
xor dword [esp + 0xb8], 0x1deef9bc
xor dword [esp + 0xb8], 0xc3663fc2
mov dword [esp + 0x108], 0xaf80
or dword [esp + 0x108], 0xe8744ffa
xor dword [esp + 0x108], 0xe874e0b4
mov dword [esp + 0xb4], 0xf9d
shl dword [esp + 0xb4], 9
add dword [esp + 0xb4], 0xffff0531
xor dword [esp + 0xb4], 0x1e5aa8
mov dword [esp + 0xe8], 0xbb46
xor edx, edx
mov eax, dword [esp + 0xe8]
push 0x47
pop ebp
div ebp
push 0x5d
mov dword [esp + 0xec], eax
xor edx, edx
xor dword [esp + 0xec], 0x3daa
mov dword [esp + 0xe4], 0xd23b
mov eax, dword [esp + 0xe4]
pop ebp
div ebp
push 0x37
mov dword [esp + 0xe4], eax
xor edx, edx
xor dword [esp + 0xe4], 0x3626
mov dword [esp + 0xfc], 0x812a
or dword [esp + 0xfc], 0xa544018f
xor dword [esp + 0xfc], 0xa544a3f2
mov dword [esp + 0x34], 0x2d33
shr dword [esp + 0x34], 9
shr dword [esp + 0x34], 7
add dword [esp + 0x34], 0x37cf
xor dword [esp + 0x34], 0x7ab9
mov dword [esp + 0x70], 0xb97b
shr dword [esp + 0x70], 9
add dword [esp + 0x70], 0xffffd2e7
xor dword [esp + 0x70], 0xffffcb0c
mov dword [esp + 0xa8], 0x7714
add dword [esp + 0xa8], 0xaa9b
or dword [esp + 0xa8], 0xc7a3b829
xor dword [esp + 0xa8], 0xc7a3d289
mov dword [esp + 0xc0], 0xb449
shl dword [esp + 0xc0], 6
xor dword [esp + 0xc0], 0x2d5f59
mov dword [esp + 0xd4], 0x5462
or dword [esp + 0xd4], 0x9ab666f8
xor dword [esp + 0xd4], 0x9ab6467e
mov dword [esp + 0x3c], 0x2eb1
shr dword [esp + 0x3c], 6
shr dword [esp + 0x3c], 0xb
shr dword [esp + 0x3c], 0xb
xor dword [esp + 0x3c], 0x5e90
mov dword [esp + 0x4c], 0x4399
shl dword [esp + 0x4c], 0xc
imul eax, dword [esp + 0x4c], 0x6c
pop ebp
push 0xe
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
div ebp
xor edx, edx
mov dword [esp + 0x4c], eax
xor dword [esp + 0x4c], 0x3a455a0
mov dword [esp + 0x78], 0x13df
xor dword [esp + 0x78], 0x5d838ce0
xor dword [esp + 0x78], 0x79493386
xor dword [esp + 0x78], 0x24caa4ed
mov dword [esp + 0xdc], 0x9df8
add dword [esp + 0xdc], 0xffffe369
xor dword [esp + 0xdc], 0xd456
mov dword [esp + 0x98], 0x9f8f
mov eax, dword [esp + 0x98]
pop ebp
div ebp
push 0x28
mov dword [esp + 0x98], eax
xor edx, edx
shr dword [esp + 0x98], 0xe
xor dword [esp + 0x98], 0x63b1
mov dword [esp + 0x28], 0xac6
xor dword [esp + 0x28], 0xd048bdc9
shl dword [esp + 0x28], 0xd
mov eax, dword [esp + 0x28]
pop ebp
div ebp
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0x920b08
mov dword [esp + 0x68], 0xe7a3
shl dword [esp + 0x68], 1
xor edx, edx
shl dword [esp + 0x68], 9
xor dword [esp + 0x68], 0x39e9704
mov dword [esp + 0x20], 0x7eb6
shl dword [esp + 0x20], 1
add dword [esp + 0x20], 0xffffdda2
shl dword [esp + 0x20], 7
xor dword [esp + 0x20], 0x6d82a2
mov dword [esp + 0x2c], 0xe216
or dword [esp + 0x2c], 0x5d7383a4
shl dword [esp + 0x2c], 7
add dword [esp + 0x2c], 0x9f6a
xor dword [esp + 0x2c], 0xb9f2610f
mov dword [esp + 0x78], 0x1728
add dword [esp + 0x78], 0xef79
shl dword [esp + 0x78], 0xa
xor dword [esp + 0x78], 0x41aa3ba
mov dword [esp + 0x5c], 0x5f94
shr dword [esp + 0x5c], 3
or dword [esp + 0x5c], 0xcbd9ca4d
add dword [esp + 0x5c], 0x6d0d
xor dword [esp + 0x5c], 0xcbda3e17
mov dword [esp + 0x54], 0x8196
shr dword [esp + 0x54], 8
mov eax, dword [esp + 0x54]
push 0x6e
pop ebp
div ebp
push 0x4c
mov dword [esp + 0x58], eax
xor edx, edx
shr dword [esp + 0x58], 8
xor dword [esp + 0x58], 0xa9e
mov dword [esp + 0x50], 0x2d84
imul eax, dword [esp + 0x50], 0x7d
pop ebp
push 0x24
mov dword [esp + 0x50], eax
xor dword [esp + 0x50], 0x34ff1d82
shr dword [esp + 0x50], 7
xor dword [esp + 0x50], 0x6995e6
mov dword [esp + 0x48], 0x227a
shl dword [esp + 0x48], 3
shr dword [esp + 0x48], 3
add dword [esp + 0x48], 0x2284
xor dword [esp + 0x48], 0x2a2
mov dword [esp + 0x40], 0x46f8
or dword [esp + 0x40], 0xa186aa7
imul eax, dword [esp + 0x40], 0x4a
mov dword [esp + 0x40], eax
or dword [esp + 0x40], 0x9180f4d9
xor dword [esp + 0x40], 0xfb90b89e
mov dword [esp + 0x38], 0x5ec7
add dword [esp + 0x38], 0xffff12f5
mov eax, dword [esp + 0x38]
div ebp
xor edx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
pop ebp
div ebp
push 0x58
mov dword [esp + 0x38], eax
xor edx, edx
xor dword [esp + 0x38], 0x17fdfe
mov dword [esp + 0xe0], 0xc09a
add dword [esp + 0xe0], 0xffff2fdf
xor dword [esp + 0xe0], 0xffffe0dc
mov dword [esp + 0x8c], 0x2cd9
mov eax, dword [esp + 0x8c]
pop ebp
div ebp
mov dword [esp + 0x88], eax
shr dword [esp + 0x88], 6
xor dword [esp + 0x88], 0x1bc1
mov dword [esp + 0x80], 0x2e70
shl dword [esp + 0x80], 0xf
add dword [esp + 0x80], 0xda15
xor dword [esp + 0x80], 0x1738a764
mov dword [esp + 0xa0], 0x4ec
add dword [esp + 0xa0], 0xfffff842
xor edx, edx
mov eax, dword [esp + 0xa0]
push 0x2b
pop ebp
div ebp
push 0x1c
mov dword [esp + 0xa4], eax
xor edx, edx
xor dword [esp + 0xa4], 0x5f44025
mov dword [esp + 0xd0], 0x9734
shr dword [esp + 0xd0], 0xd
xor dword [esp + 0xd0], 0x5b1a
mov dword [esp + 0x64], 0x88a7
shr dword [esp + 0x64], 5
shl dword [esp + 0x64], 8
xor dword [esp + 0x64], 0x43eb9
mov dword [esp + 0xc8], 0x5cd5
or dword [esp + 0xc8], 0x84f50cd1
xor dword [esp + 0xc8], 0x84f55f68
mov dword [esp + 0xc4], 0xdad9
add dword [esp + 0xc4], 0x69ca
xor dword [esp + 0xc4], 0x1644e
mov dword [esp + 0x94], 0x6415
add dword [esp + 0x94], 0x85
add dword [esp + 0x94], 0xffff0949
xor dword [esp + 0x94], 0xffff145e
mov dword [esp + 0x44], 0x7558
imul eax, dword [esp + 0x44], 0x3c
pop ebp
push 0x64
mov dword [esp + 0x44], eax
add dword [esp + 0x44], 0xa608
imul eax, dword [esp + 0x44], 0x49
mov dword [esp + 0x44], eax
xor dword [esp + 0x44], 0x807036b
mov dword [esp + 0x5c], 0x11a1
imul eax, dword [esp + 0x5c], 0x79
mov dword [esp + 0x5c], eax
imul eax, dword [esp + 0x5c], 0x1c
mov dword [esp + 0x5c], eax
or dword [esp + 0x5c], 0x5d05c273
xor dword [esp + 0x5c], 0x5dedadd3
mov dword [esp + 0x100], 0xdb56
add dword [esp + 0x100], 0xec67
xor dword [esp + 0x100], 0x1f32b
mov dword [esp + 0x74], 0x5f6b
add dword [esp + 0x74], 0xf96e
add dword [esp + 0x74], 0xffffb86c
xor dword [esp + 0x74], 0x108d4
mov dword [esp + 0x9c], 0xc711
mov eax, dword [esp + 0x9c]
div ebp
pop ebp
mov dword [esp + 0x98], eax
xor edx, edx
shr dword [esp + 0x98], 4
xor dword [esp + 0x98], 0x4017
mov dword [esp + 0x50], 0x717a
shr dword [esp + 0x50], 6
add dword [esp + 0x50], 0x7da3
add dword [esp + 0x50], 0xffffba54
xor dword [esp + 0x50], 0x5d52
mov dword [esp + 0x28], 0x6c4a
shl dword [esp + 0x28], 4
or dword [esp + 0x28], 0x690663fc
shl dword [esp + 0x28], 4
xor dword [esp + 0x28], 0x906e04ea
mov dword [esp + 0x100], 0x2c11
add dword [esp + 0x100], 0x3a9e
xor dword [esp + 0x100], 0x74f0
mov dword [esp + 0xc8], 0x1a93
mov eax, dword [esp + 0xc8]
div ebp
push 0x50
mov dword [esp + 0xcc], eax
xor dword [esp + 0xcc], 0x63f8
xor edx, edx
mov dword [esp + 0xf4], 0xc241
mov eax, dword [esp + 0xf4]
pop ebp
div ebp
mov dword [esp + 0xf0], eax
xor dword [esp + 0xf0], 0x588
mov dword [esp + 0xb0], 0x1d86
shl dword [esp + 0xb0], 7
imul eax, dword [esp + 0xb0], 0x35
mov dword [esp + 0xb0], eax
xor dword [esp + 0xb0], 0x30e7037
mov dword [esp + 0xa8], 0xc80c
or dword [esp + 0xa8], 0xc9abab51
shl dword [esp + 0xa8], 5
xor dword [esp + 0xa8], 0x357d32cf
mov eax, dword [esp + 0x128]
mov ebp, dword [esp + 0x124]
mov dword [esp + 0x14], eax
mov dword [esp + 0x118], ebp
mov edx, dword [esp + 0x18]
cmp ecx, 0x1b3ee8aa
jg 0x29a91a2
je 0x29a9119
mov edx, 0x14427a32
cmp ecx, edx
jg 0x29a8fcd
je 0x29a8fab
cmp ecx, 0x10e31d
je 0x29a8f8c
cmp ecx, 0x5028fb6
je 0x29a8f6d
cmp ecx, 0xf54b27d
je 0x29a8f37
cmp ecx, 0x1202a1ae
jne 0x29a942e
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb0]
jmp 0x29a9449
lea eax, [esp + 0x11c]
mov edx, esi
push eax
push dword [esp + 0x5c]
mov ecx, dword [esp + 0x48]
call fcn.029afc20
pop ecx
pop ecx
test eax, eax
mov ecx, 0x2c99a432
push 1
pop eax
cmovne ebx, eax
mov dword [esp + 0x114], ebx
mov eax, dword [esp + 0x14]
jmp 0x29a8ed3
mov edx, dword [esp + 0x100]
push dword [esp + 0x134]
mov ecx, dword [esp + 0x2c]
call fcn.029b8f59
pop ecx
mov ecx, 0x14427a32
jmp 0x29a8f64
mov edx, dword [esp + 0x50]
push dword [esp + 0x124]
mov ecx, dword [esp + 0x9c]
call fcn.029b8f59
pop ecx
mov ecx, 0x5028fb6
jmp 0x29a8f64
mov edx, dword [esp + 0xf0]
push dword [esp + 0x12c]
mov ecx, dword [esp + 0xcc]
call fcn.029b8f59
pop ecx
mov ecx, 0x1202a1ae
jmp 0x29a8f64
cmp ecx, 0x174de846
je 0x29a9103
cmp ecx, 0x18799ba6
je 0x29a90b1
cmp ecx, 0x197158c3
jne 0x29a942e
push dword [esp + 0x30]
mov ecx, dword [esp + 0xfc]
mov edx, 0x1001d4c0
call fcn.029ab16c
pop ecx
push dword [esp + 0x48]
mov esi, eax
lea eax, [esp + 0x1cc]
push dword [esp + 0x3c]
push ecx
push esi
push eax
mov eax, dword [0x1001da08]
mov eax, dword [eax + 0x28]
movzx eax, byte [eax]
push eax
push dword [esp + 0xe8]
mov eax, dword [0x1001da08]
mov eax, dword [eax + 0x28]
movzx eax, byte [eax + 3]
push eax
push dword [esp + 0xdc]
mov eax, dword [0x1001da08]
mov eax, dword [eax + 0x28]
movzx eax, byte [eax + 1]
push eax
push dword [esp + 0xcc]
mov eax, dword [0x1001da08]
mov ecx, dword [esp + 0x98]
mov eax, dword [eax + 0x28]
movzx edx, byte [eax + 2]
call fcn.029a6cda
add esp, 0x2c
mov ecx, esi
push dword [esp + 0x94]
push dword [esp + 0xdc]
mov edx, dword [esp + 0x7c]
call fcn.029a8516
mov eax, dword [0x1001da08]
pop ecx
pop ecx
mov ecx, 0x30c95c21
mov eax, dword [eax + 0x28]
movzx edx, word [eax + 4]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], edx
mov esi, dword [esp + 0x10c]
jmp 0x29a8ed7
mov edx, dword [esp + 0xb4]
xor ecx, ecx
mov dword [esp + 0x144], eax
inc ecx
lea eax, [esp + 0x13c]
mov dword [esp + 0x13c], ecx
mov ecx, dword [esp + 0x108]
push eax
lea eax, [esp + 0x130]
mov dword [esp + 0x144], ebp
push eax
call fcn.029a23a7
pop ecx
neg eax
pop ecx
sbb ecx, ecx
and ecx, 0x12ad744d
add ecx, 0x1202a1ae
jmp 0x29a8f64
lea ecx, [esp + 0x148]
call fcn.029b4055
mov ecx, 0x26fdea50
jmp 0x29a8f64
mov eax, dword [esp + 0x7c]
mov eax, dword [esp + 0xf4]
mov eax, dword [esp + 0xe4]
mov edx, dword [edi + 4]
push ecx
push ecx
call fcn.029ab3e1
mov ecx, dword [esp + 0x10c]
mov esi, eax
mov ecx, dword [esp + 0xa4]
mov edx, esi
mov ecx, dword [esp + 0x24]
call fcn.029a7107
mov ebp, eax
mov dword [esp + 0x120], ebp
pop ecx
pop ecx
test ebp, ebp
je 0x29a9450
push dword [esp + 0x84]
mov edx, esi
push dword [edi]
push ebp
push dword [esp + 0xf8]
push dword [esp + 0xbc]
mov ecx, dword [edi + 4]
call fcn.029a1c78
add esp, 0x14
mov dword [esp + 0x14], eax
test eax, eax
je 0x29a943b
mov ecx, 0x18799ba6
mov edx, dword [esp + 0x18]
jmp 0x29a90a5
cmp ecx, 0x20e7db9b
je 0x29a93b0
cmp ecx, 0x24b015fb
je 0x29a9376
cmp ecx, 0x256e21fe
je 0x29a9345
cmp ecx, 0x26fdea50
je 0x29a92bd
cmp ecx, 0x2c99a432
je 0x29a929b
cmp ecx, 0x30c95c21
je 0x29a9213
cmp ecx, 0x3198d9d7
jne 0x29a942e
mov eax, dword [esp + 0x8c]
mov eax, dword [esp + 0x64]
call fcn.029b63ac
mov dword [esp + 0x110], eax
mov ecx, 0x1b3ee8aa
jmp 0x29a8f64
mov eax, dword [esp + 0x110]
lea edi, [esp + 0x248]
push 6
xor edx, edx
pop ecx
div ecx
mov ebx, edx
inc ebx
je 0x29a927a
xor ebp, ebp
inc ebp
mov esi, dword [esp + 0x110]
lea eax, [esp + 0x110]
push eax
push edi
push dword [esp + 0x28]
and esi, 0xf
push ebp
push dword [esp + 0x78]
mov ecx, dword [esp + 0x38]
add esi, 4
mov edx, esi
call fcn.029ad3f9
add esp, 0x14
lea edi, [edi + esi*2]
push 0x2f
pop eax
mov word [edi], ax
add edi, 2
dec ebx
jne 0x29a9230
mov ebp, dword [esp + 0x118]
mov esi, dword [esp + 0x10c]
mov ebx, dword [esp + 0x114]
xor eax, eax
mov word [edi], ax
mov ecx, 0x174de846
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0xc50]
jmp 0x29a8ed3
mov edx, dword [esp + 0x70]
push dword [esp + 0x11c]
mov ecx, dword [esp + 0x100]
call fcn.029b8f59
pop ecx
mov ecx, 0x10e31d
jmp 0x29a8f64
push dword [esp + 0x78]
mov ecx, dword [esp + 0x30]
mov edx, 0x1001d4e0
call fcn.029ab16c
pop ecx
mov esi, eax
lea eax, [esp + 0x1c8]
push eax
push dword [esp + 0x38]
lea eax, [esp + 0x250]
push esi
push eax
lea eax, [esp + 0x458]
push eax
push 0x400
push dword [esp + 0x54]
lea eax, [esp + 0x164]
push dword [esp + 0x60]
push eax
push dword [esp + 0x70]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x84]
call fcn.029ba8cc
push dword [esp + 0xa8]
mov ecx, esi
push dword [esp + 0xb4]
mov edx, dword [esp + 0x10c]
call fcn.029a8516
mov eax, dword [esp + 0x44]
add esp, 0x30
mov ecx, 0x256e21fe
jmp 0x29a9199
lea eax, [esp + 0x124]
push eax
lea edx, [esp + 0x14c]
lea ecx, [esp + 0x138]
call fcn.029b0dcb
neg eax
pop ecx
sbb ecx, ecx
and ecx, 0x1be54be5
add ecx, 0x5028fb6
jmp 0x29a8f64
mov edx, dword [esp + 0xe0]
lea eax, [esp + 0x134]
mov ecx, dword [esp + 0xe8]
push eax
lea eax, [esp + 0x130]
push eax
call fcn.029ab632
pop ecx
neg eax
pop ecx
sbb ecx, ecx
and ecx, 0x52ede91
add ecx, 0x14427a32
jmp 0x29a8f64
push edx
push dword [esp + 0x94]
and dword [esp + 0x124], 0
lea eax, [esp + 0x1d0]
and dword [esp + 0x128], 0
lea ecx, [esp + 0x124]
push eax
lea eax, [esp + 0x130]
push eax
push dword [esp + 0xd0]
lea eax, [esp + 0x45c]
push eax
push dword [esp + 0xdc]
lea eax, [esp + 0x264]
push dword [esp + 0x7c]
push dword [esp + 0xec]
mov edx, dword [esp + 0xc4]
push eax
call fcn.029b6483
add esp, 0x28
test eax, eax
je 0x29a9425
mov ecx, 0xf54b27d
jmp 0x29a8f64
mov eax, dword [esp + 0x14]
mov ecx, 0x10e31d
cmp ecx, 0x313d4f5d
je 0x29a9450
jmp 0x29a8ed3
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0xd4]
push ebp
call fcn.029b8f59
pop ecx
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0xc38
ret