Function at 0x3b8073
Capabilities:
Encrypt data using chaskey

Disassembly:
sub esp, 0x1c8
mov dword [esp + 0x190], 0x8994d3
xor edx, edx
mov dword [esp + 0x194], 0xe6fb7e
push ebx
push ebp
push esi
xor ebp, ebp
mov dword [esp + 0x180], ecx
and dword [esp + 0x1a4], ebp
mov ebx, 0x5fc869b
mov dword [esp + 0x164], 0x1a7cf3
or dword [esp + 0x164], 0x4c6f2958
xor dword [esp + 0x164], 0x13d39b0
mov dword [esp + 0x9c], 0x475842
add dword [esp + 0x9c], 0xffffbb57
mov eax, dword [esp + 0x9c]
push edi
push 0x7f
pop ecx
div ecx
push 0xb
mov dword [esp + 0xa4], eax
xor edx, edx
xor dword [esp + 0xa4], 0x8f44
mov dword [esp + 0x3c], 0xffcc65
or dword [esp + 0x3c], 0xd66e686
shl dword [esp + 0x3c], 0xc
mov eax, dword [esp + 0x3c]
pop ecx
div ecx
push 0x3d
mov dword [esp + 0x3c], eax
xor edx, edx
xor dword [esp + 0x3c], 0x172cf2e8
mov dword [esp + 0x6c], 0x73e704
mov eax, dword [esp + 0x6c]
pop ecx
div ecx
push 0x60
mov dword [esp + 0x6c], eax
xor edx, edx
xor dword [esp + 0x6c], 0xfe384d99
add dword [esp + 0x6c], 0xffff6d45
xor dword [esp + 0x6c], 0xfe391936
mov dword [esp + 0x140], 0xaff062
mov eax, dword [esp + 0x140]
pop edi
div edi
mov dword [esp + 0x13c], eax
xor dword [esp + 0x13c], 0x1d52b
mov dword [esp + 0x164], 0x346dbb
shr dword [esp + 0x164], 3
xor dword [esp + 0x164], 0x68db7
mov dword [esp + 0x114], 0x474d18
shr dword [esp + 0x114], 0xe
xor dword [esp + 0x114], 0x11d
mov dword [esp + 0x174], 0x33be42
add dword [esp + 0x174], 0xc8e4
xor dword [esp + 0x174], 0x348726
mov dword [esp + 0x7c], 0xa1438a
shr dword [esp + 0x7c], 0xc
add dword [esp + 0x7c], 0xffffa5d6
add dword [esp + 0x7c], 0x1694
xor dword [esp + 0x7c], 0xffffc67e
mov dword [esp + 0x74], 0x2b3db0
shr dword [esp + 0x74], 2
xor dword [esp + 0x74], 0x8c29a5f0
shl dword [esp + 0x74], 0x10
xor dword [esp + 0x74], 0x6a9c0000
mov dword [esp + 0x170], 0x94756b
shr dword [esp + 0x170], 4
xor dword [esp + 0x170], 0x94756
mov dword [esp + 0xf8], 0x4e8fd8
or dword [esp + 0xf8], 0xa027dd29
add dword [esp + 0xf8], 0xffffce14
xor dword [esp + 0xf8], 0xa06fae0d
mov dword [esp + 0xc4], 0xad8430
xor dword [esp + 0xc4], 0x979db76f
shl dword [esp + 0xc4], 0xc
xor dword [esp + 0xc4], 0x335f020
mov dword [esp + 0x4c], 0xf7d16a
mov eax, dword [esp + 0x4c]
xor edx, edx
push 0x4f
pop ecx
div ecx
push 0x77
mov dword [esp + 0x50], eax
xor edx, edx
add dword [esp + 0x50], 0xe3f5
add dword [esp + 0x50], 0xfffff298
xor dword [esp + 0x50], 0x3f9bb
mov dword [esp + 0xc4], 0x1e4f3c
xor dword [esp + 0xc4], 0x6b9e0cac
mov eax, dword [esp + 0xc4]
pop ecx
div ecx
push 0x2e
mov dword [esp + 0xc4], eax
xor edx, edx
xor dword [esp + 0xc4], 0xe8042c
mov dword [esp + 0x128], 0xfa9024
imul eax, dword [esp + 0x128], 0x78
pop ecx
push 0x6d
pop esi
push 0x5d
mov dword [esp + 0x128], eax
xor dword [esp + 0x128], 0x757d0c73
mov dword [esp + 0xbc], 0xb0c793
or dword [esp + 0xbc], 0xe9a8b689
add dword [esp + 0xbc], 0x1d4c
xor dword [esp + 0xbc], 0xe9b55bac
mov dword [esp + 0x64], 0xc6d013
or dword [esp + 0x64], 0x8070cb46
shr dword [esp + 0x64], 8
add dword [esp + 0x64], 0xdef1
xor dword [esp + 0x64], 0x87b46d
mov dword [esp + 0x138], 0xb63576
mov eax, dword [esp + 0x138]
div ecx
xor edx, edx
mov dword [esp + 0x138], eax
xor dword [esp + 0x138], 0x92c2e
mov dword [esp + 0x130], 0xac5799
or dword [esp + 0x130], 0x874c604b
xor dword [esp + 0x130], 0x87e1f592
mov dword [esp + 0xd4], 0x888031
or dword [esp + 0xd4], 0x234b8958
add dword [esp + 0xd4], 0xffff7807
xor dword [esp + 0xd4], 0x23cc398a
mov dword [esp + 0xcc], 0x17ae02
shr dword [esp + 0xcc], 0xd
or dword [esp + 0xcc], 0xcdcc6268
xor dword [esp + 0xcc], 0xcdc1a925
mov dword [esp + 0x74], 0x46d3a4
add dword [esp + 0x74], 0x62b
shl dword [esp + 0x74], 7
xor dword [esp + 0x74], 0x6f98344d
xor dword [esp + 0x74], 0x4cfffc2f
mov dword [esp + 0xe4], 0x141bd7
or dword [esp + 0xe4], 0x93006133
xor dword [esp + 0xe4], 0x6574c77a
xor dword [esp + 0xe4], 0xf660fdd1
mov dword [esp + 0xdc], 0xaaa54c
mov eax, dword [esp + 0xdc]
div esi
xor edx, edx
mov dword [esp + 0xdc], eax
add dword [esp + 0xdc], 0xffffab69
xor dword [esp + 0xdc], 0x74290
mov dword [esp + 0xec], 0x486a66
shl dword [esp + 0xec], 8
mov eax, dword [esp + 0xec]
pop ecx
div ecx
mov dword [esp + 0xe8], eax
xor dword [esp + 0xe8], 0xc0ac10
mov dword [esp + 0x14c], 0xa4ddd0
imul eax, dword [esp + 0x14c], 0x66
mov dword [esp + 0x14c], eax
xor dword [esp + 0x14c], 0x41b43d12
mov dword [esp + 0x144], 0x915b38
xor edx, edx
add dword [esp + 0x144], 0xffff86fa
xor dword [esp + 0x144], 0x93d8fe
mov dword [esp + 0x80], 0x46ae3d
mov eax, dword [esp + 0x80]
mov dword [esp + 0x80], eax
add dword [esp + 0x80], 0xffff62b2
or dword [esp + 0x80], 0xa77e9abe
xor dword [esp + 0x80], 0xa778a6fc
mov dword [esp + 0xf0], 0xe7d4b9
add dword [esp + 0xf0], 0x48d5
mov eax, dword [esp + 0xf0]
div esi
push 0x6f
mov dword [esp + 0xf4], eax
xor edx, edx
xor dword [esp + 0xf4], 0x79ef5
mov dword [esp + 0x7c], 0x337ce2
shl dword [esp + 0x7c], 8
shl dword [esp + 0x7c], 0xf
xor dword [esp + 0x7c], 0x5e7d872a
xor dword [esp + 0x7c], 0x2f766bfe
mov dword [esp + 0x24], 0x7fd0cb
imul eax, dword [esp + 0x24], 0xf
pop ecx
push 0x5c
mov dword [esp + 0x24], eax
add dword [esp + 0x24], 0xffff73ab
add dword [esp + 0x24], 0xffff3744
xor dword [esp + 0x24], 0x779e03d
mov dword [esp + 0xb8], 0x1d2e76
or dword [esp + 0xb8], 0xcea0940
xor dword [esp + 0xb8], 0xf1ba07c3
xor dword [esp + 0xb8], 0xfd42aa93
mov dword [esp + 0x1c], 0x2710af
add dword [esp + 0x1c], 0xfae4
shr dword [esp + 0x1c], 6
shr dword [esp + 0x1c], 1
xor dword [esp + 0x1c], 0x22eb7
mov dword [esp + 0xf0], 0x7d8f9a
xor dword [esp + 0xf0], 0x7c6cbfda
shl dword [esp + 0xf0], 6
xor dword [esp + 0xf0], 0x44087c8
mov dword [esp + 0x34], 0xcc59fa
mov eax, dword [esp + 0x34]
div ecx
xor edx, edx
mov dword [esp + 0x34], eax
or dword [esp + 0x34], 0x1bf4b7d2
add dword [esp + 0x34], 0x4d3a
xor dword [esp + 0x34], 0x1bf957e0
mov dword [esp + 0x170], 0x5d416b
mov eax, dword [esp + 0x170]
pop ecx
div ecx
mov dword [esp + 0x16c], eax
xor dword [esp + 0x16c], 0x87eaf
mov dword [esp + 0x28], 0x8284d2
add dword [esp + 0x28], 0xffff4901
add dword [esp + 0x28], 0x516e
or dword [esp + 0x28], 0x32e7dbd5
xor dword [esp + 0x28], 0x32e45c2c
mov dword [esp + 0xdc], 0x5a032b
or dword [esp + 0xdc], 0x77ff6fbf
xor dword [esp + 0xdc], 0x77f15362
mov dword [esp + 0x40], 0x72318d
add dword [esp + 0x40], 0x6522
or dword [esp + 0x40], 0x36f8fcf8
xor dword [esp + 0x40], 0x36f40780
mov dword [esp + 0xfc], 0x535a56
shr dword [esp + 0xfc], 7
add dword [esp + 0xfc], 0xffff6aa9
xor dword [esp + 0xfc], 0x8d786
mov dword [esp + 0xbc], 0x29f6c6
shr dword [esp + 0xbc], 6
shr dword [esp + 0xbc], 5
xor dword [esp + 0xbc], 0x19370
mov dword [esp + 0x148], 0x31940c
imul eax, dword [esp + 0x148], 0x6f
mov dword [esp + 0x148], eax
xor dword [esp + 0x148], 0x15712339
xor edx, edx
mov dword [esp + 0x84], 0x4e5b63
add dword [esp + 0x84], 0xca08
xor dword [esp + 0x84], 0x6c198343
xor dword [esp + 0x84], 0x6c592193
mov dword [esp + 0x98], 0x11ec6b
xor dword [esp + 0x98], 0xa1a55de6
shr dword [esp + 0x98], 6
xor dword [esp + 0x98], 0x28ef0a7
mov dword [esp + 0x90], 0x99c8f
shr dword [esp + 0x90], 4
mov eax, dword [esp + 0x90]
div edi
push 0x6b
mov dword [esp + 0x94], eax
xor edx, edx
xor dword [esp + 0x94], 0x938fa
mov dword [esp + 0x110], 0x7bac29
add dword [esp + 0x110], 0xffff50fa
xor dword [esp + 0x110], 0x754343
mov dword [esp + 0x10c], 0x7d6c1b
imul eax, dword [esp + 0x10c], 0xe
pop esi
push 0x19
pop ecx
push 0x69
mov dword [esp + 0x10c], eax
xor dword [esp + 0x10c], 0x6d7318c
mov dword [esp + 0x8c], 0xe7d048
mov eax, dword [esp + 0x8c]
div esi
xor edx, edx
mov dword [esp + 0x8c], eax
imul eax, dword [esp + 0x8c], 0x5c
mov dword [esp + 0x8c], eax
xor dword [esp + 0x8c], 0xca7c85
mov dword [esp + 0x54], 0x19b53d
xor dword [esp + 0x54], 0x3626979a
mov eax, dword [esp + 0x54]
div ecx
xor edx, edx
mov dword [esp + 0x54], eax
shl dword [esp + 0x54], 0xb
xor dword [esp + 0x54], 0x5be94297
mov dword [esp + 0x4c], 0x4fb528
shr dword [esp + 0x4c], 2
mov eax, dword [esp + 0x4c]
pop ecx
div ecx
push 0x4c
mov dword [esp + 0x4c], eax
xor edx, edx
xor dword [esp + 0x4c], 0xf632f454
xor dword [esp + 0x4c], 0xf63d7601
mov dword [esp + 0xac], 0x92d17
shr dword [esp + 0xac], 5
add dword [esp + 0xac], 0xf9a5
xor dword [esp + 0xac], 0x9d38
mov dword [esp + 0x5c], 0x406cd3
mov eax, dword [esp + 0x5c]
pop ecx
div ecx
mov dword [esp + 0x58], eax
xor dword [esp + 0x58], 0x34c7caa7
shr dword [esp + 0x58], 5
xor dword [esp + 0x58], 0x1a3f891
mov dword [esp + 0xb0], 0x8686a7
add dword [esp + 0xb0], 0xffffa2ab
shr dword [esp + 0xb0], 1
xor dword [esp + 0xb0], 0x42b813
mov dword [esp + 0x11c], 0xa3b160
imul eax, dword [esp + 0x11c], 0x30
mov dword [esp + 0x11c], eax
xor dword [esp + 0x11c], 0x1ebac4bb
mov dword [esp + 0xf4], 0x470d9a
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xf4], eax
add dword [esp + 0xf4], 0xffff3f22
xor dword [esp + 0xf4], 0x40e5cd
mov dword [esp + 0x138], 0xaed071
or dword [esp + 0x138], 0xdbf458e9
xor edx, edx
xor dword [esp + 0x138], 0xdbf00559
mov dword [esp + 0x178], 0xdfe0ad
shr dword [esp + 0x178], 5
xor dword [esp + 0x178], 0x397be
mov dword [esp + 0x130], 0x29b0b9
shl dword [esp + 0x130], 0x10
xor dword [esp + 0x130], 0xb0b1d5cb
mov dword [esp + 0xac], 0x509401
add dword [esp + 0xac], 0x54ef
xor dword [esp + 0xac], 0x4d6a3b9f
xor dword [esp + 0xac], 0x4d3df952
mov dword [esp + 0x140], 0x940bd7
shr dword [esp + 0x140], 0xc
xor dword [esp + 0x140], 0x7e3a6
mov dword [esp + 0x3c], 0x83ca14
imul eax, dword [esp + 0x3c], 0x54
push 0x3e
pop ecx
push 0x54
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0xa28c9b64
imul eax, dword [esp + 0x40], 6
mov dword [esp + 0x40], eax
xor dword [esp + 0x40], 0x3a37dac0
mov dword [esp + 0xd8], 0x439b8e
xor dword [esp + 0xd8], 0xb0ba8109
shr dword [esp + 0xd8], 0xf
xor dword [esp + 0xd8], 0x598ee
mov dword [esp + 0x60], 0x6e254
mov eax, dword [esp + 0x60]
div ecx
xor edx, edx
mov dword [esp + 0x60], eax
shr dword [esp + 0x60], 7
shr dword [esp + 0x60], 7
xor dword [esp + 0x60], 0x1b060
mov dword [esp + 0xa8], 0x718c33
imul eax, dword [esp + 0xa8], 0x71
pop ecx
push 0x58
mov dword [esp + 0xa8], eax
add dword [esp + 0xa8], 0xc871
xor dword [esp + 0xa8], 0x321e45df
mov dword [esp + 0x14], 0x5d9f7b
mov eax, dword [esp + 0x14]
div ecx
xor edx, edx
mov dword [esp + 0x14], eax
shr dword [esp + 0x14], 4
shr dword [esp + 0x14], 0xe
xor dword [esp + 0x14], 0x891b2
mov dword [esp + 0x68], 0x90d1c0
imul eax, dword [esp + 0x68], 0x68
pop ecx
mov dword [esp + 0x64], eax
xor dword [esp + 0x64], 0xd19692cb
add dword [esp + 0x64], 0x6bf2
xor dword [esp + 0x64], 0xeb4c05d5
mov dword [esp + 0x44], 0x2e878
add dword [esp + 0x44], 0xffffb37f
shl dword [esp + 0x44], 5
mov eax, dword [esp + 0x44]
div ecx
mov dword [esp + 0x44], eax
xor dword [esp + 0x44], 0x488fb
mov dword [esp + 0x160], 0xd6f1e6
or dword [esp + 0x160], 0x1ddba2db
xor dword [esp + 0x160], 0x1ddfb722
mov dword [esp + 0x128], 0x53bfca
or dword [esp + 0x128], 0xd4f65e49
xor dword [esp + 0x128], 0xd4f1e8b7
mov dword [esp + 0x14], 0x1cff80
shr dword [esp + 0x14], 0xa
shr dword [esp + 0x14], 1
shl dword [esp + 0x14], 3
xor dword [esp + 0x14], 0x2345e
mov dword [esp + 0x104], 0xc6b9c7
imul eax, dword [esp + 0x104], 0x3d
mov dword [esp + 0x104], eax
xor dword [esp + 0x104], 0x2f55a3fa
xor edx, edx
mov dword [esp + 0x150], 0x2f072b
shr dword [esp + 0x150], 9
xor dword [esp + 0x150], 0x10e4
mov dword [esp + 0x110], 0x9234db
xor dword [esp + 0x110], 0x9deda8b0
xor dword [esp + 0x110], 0x9d70dc38
mov dword [esp + 0x24], 0x1ba616
xor dword [esp + 0x24], 0xf9857f79
mov eax, dword [esp + 0x24]
push 0x66
pop ecx
div ecx
xor edx, edx
mov dword [esp + 0x24], eax
xor dword [esp + 0x24], 0xefd5d8db
xor dword [esp + 0x24], 0xedae98db
mov dword [esp + 0x120], 0xcc6eb8
imul eax, dword [esp + 0x120], 0x23
push 0x53
pop ecx
push 0x79
mov dword [esp + 0x124], eax
xor dword [esp + 0x124], 0x1bfe48c6
mov dword [esp + 0x15c], 0xed3342
or dword [esp + 0x15c], 0x756d5fa7
xor dword [esp + 0x15c], 0x75e89f17
mov dword [esp + 0xd0], 0x32fe1a
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xd0], eax
add dword [esp + 0xd0], 0xffff666a
xor dword [esp + 0xd0], 0x311ae2
mov dword [esp + 0x20], 0x5f2f28
shr dword [esp + 0x20], 0x10
mov eax, dword [esp + 0x20]
div esi
xor edx, edx
mov dword [esp + 0x20], eax
add dword [esp + 0x20], 0xffffe61f
xor dword [esp + 0x20], 0xfffcb074
mov dword [esp + 0x98], 0x968651
shr dword [esp + 0x98], 3
mov eax, dword [esp + 0x98]
div ecx
xor edx, edx
mov dword [esp + 0x98], eax
xor dword [esp + 0x98], 0x597ae
mov dword [esp + 0xe8], 0x6e0b65
imul eax, dword [esp + 0xe8], 0x5c
pop ecx
mov dword [esp + 0xe4], eax
add dword [esp + 0xe4], 0xfffffa57
xor dword [esp + 0xe4], 0x2787baac
mov dword [esp + 0x8c], 0x10f1ca
add dword [esp + 0x8c], 0x54a
shr dword [esp + 0x8c], 4
xor dword [esp + 0x8c], 0x8ce77
mov dword [esp + 0x118], 0xb274c7
add dword [esp + 0x118], 0xffffd1a9
xor dword [esp + 0x118], 0xb7fd22
mov dword [esp + 0x9c], 0xdc0355
shl dword [esp + 0x9c], 0xd
imul eax, dword [esp + 0x9c], 0x60
mov dword [esp + 0x9c], eax
xor dword [esp + 0x9c], 0x27f510d1
mov dword [esp + 0x2c], 0x5a687
add dword [esp + 0x2c], 0xffff89d4
or dword [esp + 0x2c], 0x9f6df9ad
mov eax, dword [esp + 0x2c]
div ecx
mov dword [esp + 0x2c], eax
xor dword [esp + 0x2c], 0x1551534
mov dword [esp + 0x54], 0x480fff
add dword [esp + 0x54], 0xffffb528
xor dword [esp + 0x54], 0x98a5fd88
shl dword [esp + 0x54], 2
xor dword [esp + 0x54], 0x6380d166
mov dword [esp + 0x34], 0xcbb904
xor dword [esp + 0x34], 0xd9baa384
shr dword [esp + 0x34], 0xf
imul eax, dword [esp + 0x34], 0x1c
xor edx, edx
push 0xc
pop ecx
mov esi, 0x638d230
mov edi, 0xa78ef4c
mov dword [esp + 0x34], eax
xor dword [esp + 0x34], 0x21028a
mov dword [esp + 0x6c], 0xd18dcb
add dword [esp + 0x6c], 0xed8a
mov eax, dword [esp + 0x6c]
div ecx
mov dword [esp + 0x6c], eax
shr dword [esp + 0x6c], 2
xor dword [esp + 0x6c], 0x399a4
mov dword [esp + 0x100], 0xd48aaa
imul eax, dword [esp + 0x100], 6
mov dword [esp + 0x100], eax
shr dword [esp + 0x100], 0xf
xor dword [esp + 0x100], 0x4f3b3
mov dword [esp + 0x15c], 0x33b8f2
imul eax, dword [esp + 0x15c], 0xa
mov dword [esp + 0x15c], eax
xor dword [esp + 0x15c], 0x206ac2e
mov dword [esp + 0x154], 0x947e95
shr dword [esp + 0x154], 5
xor dword [esp + 0x154], 0xa2c4f
mov edx, 0xfe62371
mov ecx, 0x1f0e413
mov eax, 0x73ac49a
cmp ebx, eax
jg 0x3b913c
je 0x3b9096
cmp ebx, 0x126b27c
je 0x3b9079
cmp ebx, ecx
je 0x3b9045
cmp ebx, 0x5fc869b
je 0x3b903b
cmp ebx, esi
jne 0x3b93ca
push dword [esp + 0x110]
mov ecx, 0x3a16c8
push dword [esp + 0x154]
push dword [esp + 0x10c]
mov edx, dword [esp + 0x20]
call fcn.003a57b4
add esp, 8
mov esi, eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0x1b0], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x1b4], eax
mov eax, dword [esp + 0x50]
push dword [esp + 0x11c]
mov dword [esp + 0x1bc], eax
lea eax, [esp + 0x1b4]
push dword [esp + 0x94]
push dword [esp + 0x18c]
push ecx
push eax
push esi
push dword [esp + 0x100]
mov eax, dword [0x3c420c]
push dword [eax + 0x5c]
push dword [esp + 0xb8]
push ecx
push dword [esp + 0x48]
mov eax, dword [0x3c420c]
push dword [eax + 0x58]
push dword [esp + 0x100]
push dword [esp + 0xac]
push dword [esp + 0x194]
mov edx, dword [esp + 0x160]
mov ecx, dword [esp + 0x64]
call fcn.003a96b6
add esp, 0x40
cmp eax, dword [esp + 0x170]
jne 0x3b9015
xor ebp, ebp
mov ebx, edi
inc ebp
jmp 0x3b901a
mov ebx, 0x126b27c
push dword [esp + 0x54]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0xa0]
push esi
call fcn.003ac5d7
pop ecx
pop ecx
mov esi, 0x638d230
jmp 0x3b93bb
mov ebx, 0xb325b0e
jmp 0x3b8f16
mov eax, dword [esp + 0x128]
mov eax, dword [esp + 0x160]
push ecx
mov ecx, dword [0x3c420c]
mov ecx, dword [ecx + 0x5c]
call fcn.003bf6a3
pop ecx
mov ecx, eax
mov ebx, edi
mov eax, dword [0x3c420c]
test ecx, ecx
cmovne ebx, esi
mov dword [eax + 0x58], ecx
jmp 0x3b8f07
mov eax, dword [0x3c420c]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
push dword [eax + 0x58]
call fcn.003a768d
pop ecx
mov ebx, edi
jmp 0x3b8f07
push dword [esp + 0x130]
mov ecx, 0x3a1678
push dword [esp + 0x17c]
push dword [esp + 0x140]
mov edx, dword [esp + 0x100]
call fcn.003a57b4
add esp, 0xc
lea edx, [esp + 0x17c]
mov esi, eax
push dword [esp + 0xa4]
mov eax, dword [0x3c420c]
push esi
add eax, 0x5c
push eax
push dword [esp + 0x180]
push dword [esp + 0x6c]
push dword [esp + 0x194]
push dword [esp + 0xec]
push dword [esp + 0x58]
push dword [esp + 0x160]
push ecx
mov ecx, dword [esp + 0xd4]
call fcn.003a71d5
mov ecx, eax
mov ebx, edi
mov eax, dword [esp + 0xa4]
cmp ecx, eax
push dword [esp + 0x6c]
mov edx, dword [esp + 0x90]
mov eax, 0x1f0e413
mov ecx, dword [esp + 0x3c]
cmove ebx, eax
push esi
call fcn.003ac5d7
add esp, 0x30
jmp 0x3b9031
cmp ebx, edi
je 0x3b938b
cmp ebx, 0xb325b0e
je 0x3b92bc
cmp ebx, edx
jne 0x3b93ca
push dword [esp + 0xec]
mov ecx, 0x3a1648
push dword [esp + 0x1c]
push dword [esp + 0xbc]
mov edx, dword [esp + 0x2c]
call fcn.003a57b4
push dword [esp + 0xe8]
mov ecx, 0x3a1628
mov edi, eax
push dword [esp + 0x38]
push dword [esp + 0x180]
mov edx, dword [esp + 0x48]
call fcn.003a57b4
mov esi, eax
mov eax, dword [esp + 0x50]
push edi
push dword [esp + 0x164]
mov dword [esp + 0x1ac], eax
push dword [esp + 0xdc]
mov edx, dword [esp + 0x120]
mov ecx, dword [esp + 0x64]
call fcn.003bb9e9
mov ecx, dword [esp + 0x1a8]
and dword [esp + 0x1b8], 0
mov dword [esp + 0x1b4], edi
lea eax, [eax*2 + 2]
mov dword [esp + 0x1bc], 1
mov dword [esp + 0x1ac], eax
lea eax, [esp + 0x1ac]
mov dword [esp + 0x1c0], eax
mov eax, dword [esp + 0xe8]
push dword [esp + 0x188]
mov dword [esp + 0x1a4], eax
lea eax, [esp + 0x1bc]
push esi
push dword [esp + 0xb4]
push eax
lea eax, [esp + 0x1b0]
push eax
push dword [esp + 0x140]
lea eax, [esp + 0x1f4]
push dword [esp + 0x148]
push dword [esp + 0xd0]
push eax
push dword [esp + 0xe0]
mov edx, dword [esp + 0xd0]
push dword [esp + 0x1c8]
call fcn.003bdbc3
add esp, 0x50
mov ecx, eax
mov eax, dword [esp + 0x114]
mov ebx, 0xa78ef4c
cmp ecx, eax
mov eax, 0x73ac49a
push dword [esp + 0xa8]
mov edx, dword [esp + 0x4c]
cmove ebx, eax
mov ecx, dword [esp + 0x54]
push edi
call fcn.003ac5d7
push dword [esp + 0x124]
mov edx, dword [esp + 0xbc]
mov ecx, dword [esp + 0x64]
push esi
call fcn.003ac5d7
add esp, 0x10
mov edi, 0xa78ef4c
jmp 0x3b9031
push dword [esp + 0x60]
mov ecx, 0x3a16a8
push dword [esp + 0xbc]
push dword [esp + 0x12c]
mov edx, dword [esp + 0xcc]
call fcn.003a57b4
push dword [esp + 0xd4]
mov ecx, 0x3a15e8
mov edi, eax
push dword [esp + 0xe0]
push dword [esp + 0x140]
mov edx, dword [esp + 0x14c]
call fcn.003a57b4
push dword [esp + 0xf0]
mov esi, eax
lea eax, [esp + 0x19c]
push eax
push dword [esp + 0x100]
mov ecx, esi
push edi
push dword [esp + 0x90]
mov edx, dword [esp + 0x9c]
call fcn.003ae28b
mov ecx, eax
mov ebx, 0x7834020
mov eax, dword [esp + 0x168]
cmp ecx, eax
push dword [esp + 0x170]
mov edx, dword [esp + 0x17c]
mov eax, 0xfe62371
mov ecx, dword [esp + 0x118]
cmove ebx, eax
push edi
call fcn.003ac5d7
push dword [esp + 0xac]
mov edx, dword [esp + 0x128]
mov ecx, dword [esp + 0xb8]
push esi
call fcn.003ac5d7
add esp, 0x3c
jmp 0x3b92b2
push dword [esp + 0x154]
push dword [esp + 0xfc]
push dword [esp + 0x164]
mov edx, dword [esp + 0x18c]
mov ecx, dword [esp + 0x10c]
call fcn.003ae1cb
add esp, 0xc
mov ebx, 0x7834020
mov eax, 0x73ac49a
mov ecx, 0x1f0e413
mov edx, 0xfe62371
cmp ebx, 0x7834020
jne 0x3b8f16
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x1c8
ret