Function at 0x10053000
Capabilities:
Encode data using xor
Encrypt data using des via winapi
Encrypt or decrypt via wincrypt

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xdc
mov eax, dword [ebp + 8]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov eax, esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], 0xffffffff
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10060950
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
push eax
mov ebx, esp
push eax
mov esi, esp
mov dword [ebp - 0xa8], esi
push eax
mov eax, esp
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x30], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x34], ecx
push eax
mov ecx, esp
mov dword [ebp - 0xa4], ecx
push eax
mov ecx, esp
mov dword [ebp - 0xa0], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x9c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x98], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x94], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x90], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x8c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x88], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x84], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x80], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x7c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x78], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x74], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x70], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x6c], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x68], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x64], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x60], ecx
sub esp, 0x14
mov ecx, esp
mov dword [ebp - 0x5c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x58], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x54], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x50], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x4c], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x48], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x44], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x40], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x3c], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [ebx], ecx
mov ecx, dword [ebp - 0x30]
mov dword [esi], edi
mov dword [eax], edx
mov eax, dword [eax]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.1004f330
mov ecx, dword [ebp - 0x34]
add esp, 8
call fcn.10051350
mov ecx, dword [ebp - 0x30]
call fcn.10051390
cmp eax, 0x10
jbe 0x10053491
mov eax, dword [0x1027f13c]
xor ecx, ecx
sub ecx, dword [0x1027f140]
add eax, ecx
add eax, 0x17a16aaa
or eax, 0xf64792f0
mov ecx, eax
and ecx, 0xf51ae83c
xor ecx, 0xffffffff
add eax, 0xf51ae83c
add eax, 1
add eax, ecx
cmp eax, 0xcc42ac79
jb 0x1005401f
mov ecx, dword [ebp - 0x30]
mov eax, dword [0x1027f144]
xor edx, edx
div dword [0x1027f148]
mov edx, eax
and edx, 0xf1e674dd
mov esi, eax
xor esi, 0xe198b22
add eax, esi
sub eax, edx
mov edx, eax
and edx, 0x5620603b
shl edx, 1
xor eax, 0x5620603b
add eax, edx
mov esi, eax
xor esi, 0xffffffff
and esi, 0x389aa7cd
mov edx, eax
and edx, 0xc7655832
imul edx, esi
mov esi, eax
and esi, 0x389aa7cd
or eax, 0x389aa7cd
imul eax, esi
add eax, edx
mov dword [ebp - 0xb0], eax
call fcn.1004fb20
mov ecx, eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 8], 8
mov dword [eax + 4], str.Salted__
call fcn.101eea5d
add esp, 0xc
mov ecx, eax
mov eax, dword [ebp - 0xb0]
cmp ecx, 0
sete cl
mov byte [ebp - 0xa9], cl
cmp eax, 0xf1bba6e8
je 0x1005401f
mov al, byte [ebp - 0xa9]
test al, 1
jne 0x1005326e
jmp 0x10053491
mov eax, dword [0x1027f14c]
add eax, dword [0x1027f150]
or eax, 0x979f0d4b
or eax, 0x974c466
xor eax, 0xffffffff
or eax, 0xdfc6ad1c
xor eax, 0xffffffff
cmp eax, 0xb8422ad3
ja 0x1005404b
mov esi, dword [ebp - 0x94]
mov edi, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x30]
mov edx, dword [0x1027f154]
mov eax, dword [0x1027f158]
mov ebx, edx
and ebx, eax
or edx, eax
mov eax, dword [ebp - 0xa0]
add ebx, edx
add ebx, 0xb5adb148
add ebx, 0x22a5c519
mov edx, ebx
and edx, 0xd756eded
xor ebx, 0xd756eded
or edx, ebx
mov dword [ebp - 0xc0], edx
sub esp, 4
mov dword [esp], eax
call fcn.10052b20
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.10052fc0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x98]
sub esp, 4
mov dword [esp], eax
call fcn.10052b20
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.10052fc0
mov ecx, dword [ebp - 0x34]
sub esp, 4
mov dword [esp], edi
call fcn.10051d80
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa4]
mov eax, dword [ebp - 0xc0]
mov edi, dword [edi]
mov dword [esi], edi
mov esi, dword [esi]
mov dword [ebp - 0xbc], esi
mov edx, dword [edx]
mov dword [ebp - 0xb8], edx
mov ecx, dword [ecx]
mov dword [ebp - 0xb4], ecx
cmp eax, 0xcbe05943
je 0x10053299
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x8c]
mov esi, dword [ebp - 0xbc]
mov edi, dword [ebp - 0xb8]
mov ebx, dword [ebp - 0xb4]
mov dword [ebp - 0x10], 1
sub esp, 0x10
mov eax, esp
mov dword [eax + 0xc], ebx
mov dword [eax + 8], edi
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.100526f0
jmp 0x100533c3
mov esi, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x30]
mov edi, dword [ebp - 0x78]
mov eax, dword [ebp - 0x80]
sub esp, 4
mov dword [esp], eax
call fcn.10052b20
mov ecx, dword [ebp - 0x80]
mov eax, dword [ebp - 0x84]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.10052fc0
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x30]
mov edx, dword [edx]
mov dword [eax], edx
sub esp, 4
mov dword [esp], edi
call fcn.10052b20
mov edx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x30]
mov edi, dword [edi]
mov dword [edx], edi
mov edx, dword [edx]
mov eax, dword [eax]
sub esp, 0xc
mov dword [esp], esi
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.10054350
mov ecx, dword [0x1027f17c]
mov esi, dword [0x1027f180]
mov edx, esi
xor edx, 0xffffffff
mov eax, ecx
and eax, edx
mov edx, ecx
xor edx, esi
add ecx, edx
sub ecx, eax
mov eax, ecx
and eax, 0xd64fc263
xor ecx, 0xffffffff
or ecx, 0x29b03d9c
xor ecx, 0xffffffff
or eax, ecx
add eax, 0xda0d9179
sub eax, 0xff1581c
sub eax, 0xda0d9179
sub eax, 0x4039043f
cmp eax, 0xa8570507
jbe 0x100535bc
jmp 0x100540e4
mov eax, dword [0x1027f164]
mov esi, dword [0x1027f168]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, esi
and edx, ecx
mov edi, esi
xor edi, 0xffffffff
mov ecx, eax
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
or eax, 0xed91984e
imul ecx, eax, 0xbddbabb
mov eax, ecx
and eax, 0x3bb44e9d
xor ecx, 0xffffffff
and ecx, 0xc44bb162
or eax, ecx
xor eax, 0xffffffff
cmp eax, 0x17baabd0
jbe 0x100540da
mov ecx, dword [ebp - 0x70]
lea eax, str.Invalid_encrypted_data_header.
sub esp, 4
mov dword [esp], eax
call fcn.1004f7c0
mov eax, dword [0x1027f16c]
add eax, dword [0x1027f170]
sub eax, 0x5cf5c6bb
mov ecx, 0xf7ba1bf
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0xf0c0bf1c
xor eax, eax
sub eax, ecx
cmp eax, 0xb3d66e8e
je 0x100540df
mov eax, dword [0x1027f174]
mov esi, dword [0x1027f178]
mov edi, esi
xor edi, 0xffffffff
mov edx, eax
and edx, edi
mov ecx, eax
or ecx, edi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
mov ecx, 0x1b154dca
xor edx, edx
div ecx
mov edx, eax
and edx, 0x45e482b2
mov ecx, eax
or ecx, 0x45e482b2
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xba1b7d4d
or eax, 0xba1b7d4d
imul eax, edx
add eax, ecx
sub eax, 0xb75f98c9
cmp eax, 0xfccd235f
je 0x1005352d
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x10], 1
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026a94c
call fcn.101ee0b1
add esp, 8
jmp 0x1005401f
mov ecx, dword [ebp - 0x6c]
mov eax, dword [0x1027f184]
add eax, dword [0x1027f188]
mov esi, 0xdea4425f
xor edx, edx
div esi
mov esi, eax
mov edx, esi
xor edx, 0xffffffff
mov eax, edx
and eax, 0xf11c2a63
and esi, 0xee3d59c
or eax, esi
xor eax, 0xbe89c1d8
or edx, 0xb06a1444
xor edx, 0xffffffff
or eax, edx
or eax, 0x2ec1e8f8
mov dword [ebp - 0xc8], eax
call fcn.10051350
mov ecx, dword [ebp - 0x68]
call fcn.10051350
mov ecx, dword [ebp - 0xa8]
mov eax, dword [ebp - 0xc8]
mov ecx, dword [ecx]
mov dword [ebp - 0xc4], ecx
cmp eax, 0xb2679251
jae 0x100535bc
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0xc4]
mov esi, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x10], 3
sub esp, 0x18
mov eax, esp
mov dword [eax + 0xc], edi
mov dword [eax + 8], esi
mov dword [eax + 4], edx
mov dword [eax], ecx
mov dword [eax + 0x14], 8
mov dword [eax + 0x10], 8
call fcn.1004fcf0
add esp, 0x18
jmp 0x10053671
mov eax, dword [0x1027f18c]
mov esi, dword [0x1027f190]
mov ecx, eax
xor ecx, 0xffffffff
mov edx, esi
and edx, ecx
mov edi, esi
xor edi, 0xffffffff
mov ecx, eax
and ecx, edi
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
mov ecx, 0xab865089
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x1f9ad0f3
and ecx, 0xe0652f0c
or eax, ecx
xor eax, 0xbc2c7ba
imul eax, eax, 0xd83d721b
cmp eax, 0x89ff35ca
ja 0x100540f9
mov eax, dword [ebp - 0x64]
mov dword [eax], 0
xor ecx, ecx
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0xf0000000
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
cmp eax, 0
jne 0x100537a7
mov eax, dword [0x1027f19c]
sub eax, dword [0x1027f1a0]
add eax, 0x41097b2f
add eax, 1
xor eax, 0x7da56e0
add eax, 0x83c63480
cmp eax, 0xefa0e77
jbe 0x10054135
mov ecx, dword [ebp - 0x60]
lea eax, str.Failed_to_acquire_cryptographic_context.
sub esp, 4
mov dword [esp], eax
call fcn.1004f7c0
mov eax, dword [0x1027f1ac]
mov ecx, dword [0x1027f1b0]
xor eax, 0xffffffff
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
or eax, 0x30a71673
mov ecx, 0x7b4f707c
xor edx, edx
div ecx
mov ecx, eax
add ecx, 1
xor eax, 0xffffffff
or eax, 0xe7726a0f
add eax, ecx
cmp eax, 0x2c5df2b7
jae 0x1005413a
mov ecx, dword [ebp - 0x60]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026a94c
call fcn.101ee0b1
add esp, 8
jmp 0x1005401f
mov eax, dword [0x1027f1bc]
add eax, dword [0x1027f1c0]
or eax, 0xd096e639
mov edx, eax
and edx, 0xfe6f617e
mov ecx, eax
or ecx, 0xfe6f617e
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x1909e81
or eax, 0x1909e81
imul eax, edx
add eax, ecx
xor eax, 0x68618b06
cmp eax, 0xe1df69c0
ja 0x1005413f
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x6c]
mov edx, dword [0x1027f1c4]
mov edi, dword [0x1027f1c8]
mov esi, edx
xor esi, edi
xor esi, 0xffffffff
or edx, edi
and edx, esi
mov esi, edx
xor esi, 0x2547d255
xor esi, 0xffffffff
and esi, 0x2547d255
shl esi, 1
sub esi, 0x2547d255
sub edx, esi
or edx, 0x641950a6
mov esi, edx
and esi, 0x53a962b1
shl esi, 1
add edx, 0x53a962b1
sub edx, esi
mov dword [ebp - 0xd0], edx
mov byte [eax], 8
mov byte [eax + 1], 2
mov word [eax + 2], 0
mov dword [eax + 4], 0x6601
mov dword [eax + 8], 8
call fcn.1004fb20
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x5c]
mov esi, eax
mov eax, dword [ebp - 0x58]
mov edi, dword [esi]
mov dword [ecx + 0xc], edi
mov esi, dword [esi + 4]
mov dword [ecx + 0x10], esi
mov dword [eax], 0
mov edx, dword [edx]
xor esi, esi
sub esp, 0x18
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x14
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
mov ecx, eax
mov eax, dword [ebp - 0xd0]
cmp ecx, 0
setne cl
mov byte [ebp - 0xc9], cl
cmp eax, 0xd64c7d79
jae 0x100537ef
mov al, byte [ebp - 0xc9]
test al, 1
jne 0x100539a6
jmp 0x100538e3
mov eax, dword [ebp - 0x64]
mov edx, dword [0x1027f1d4]
mov esi, dword [0x1027f1d8]
xor esi, 0xffffffff
mov ecx, edx
xor ecx, esi
and ecx, edx
sub ecx, 0x3415b149
imul ecx, ecx, 0x8075184
or ecx, 0x303166a0
mov dword [ebp - 0xd4], ecx
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, dword [ebp - 0xd4]
cmp eax, 0xe1d2c1a9
jbe 0x100538e3
mov ecx, dword [ebp - 0x54]
lea eax, str.Failed_to_import_key.
sub esp, 4
mov dword [esp], eax
call fcn.1004f7c0
mov eax, dword [str.kTx]
add eax, dword [0x1027f1e8]
mov ecx, eax
and ecx, 0x62f4e55d
shl ecx, 1
add eax, 0x62f4e55d
sub eax, ecx
or eax, 0x2c6a615d
and eax, 0xc8d200c4
cmp eax, 0x2e9bebd6
jb 0x100541b6
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026a94c
call fcn.101ee0b1
add esp, 8
jmp 0x1005401f
mov eax, dword [0x1027f1ec]
mov esi, dword [0x1027f1f0]
mov edi, esi
xor edi, 0xffffffff
mov edx, eax
and edx, edi
mov ecx, eax
or ecx, edi
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, esi
or eax, esi
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0xe4fe142d
and eax, 0x1b01ebd2
shl eax, 1
sub eax, ecx
or eax, 0xa33411eb
sub eax, 0x81f921f3
cmp eax, 0xeaef7a77
jae 0x100541bb
mov ecx, dword [ebp - 0x68]
call fcn.1004fb20
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx]
xor edx, edx
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
cmp eax, 0
jne 0x10053adc
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 0x50]
lea eax, str.Failed_to_set_IV.
sub esp, 4
mov dword [esp], eax
call fcn.1004f7c0
mov eax, dword [0x1027f204]
xor edx, edx
div dword [0x1027f208]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xe23e37c1
mov ecx, eax
and ecx, 0x1dc1c83e
imul ecx, edx
mov edx, eax
and edx, 0xe23e37c1
or eax, 0xe23e37c1
imul eax, edx
add eax, ecx
and eax, 0xc5cef5b8
or eax, 0x2134a7cb
cmp eax, 0x4664bc83
jbe 0x10053a6d
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026a94c
call fcn.101ee0b1
add esp, 8
jmp 0x1005401f
mov eax, dword [0x1027f20c]
sub eax, dword [0x1027f210]
mov edx, eax
xor edx, 0xffffffff
and edx, 0xa4a46a6d
mov ecx, eax
and ecx, 0x5b5b9592
imul ecx, edx
mov edx, eax
and edx, 0xa4a46a6d
or eax, 0xa4a46a6d
imul eax, edx
add eax, ecx
mov ecx, 0xf8e3afec
xor edx, edx
div ecx
mov edx, eax
and edx, 0xdbef44bf
mov ecx, eax
or ecx, 0xdbef44bf
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x2410bb40
or eax, 0x2410bb40
imul eax, edx
add eax, ecx
cmp eax, 0x62f83c6
jae 0x100541ef
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
mov edx, dword [0x1027f214]
imul edx, dword [0x1027f218]
imul edx, edx, 0xb42d065a
mov esi, edx
add esi, 1
xor edx, 0xffffffff
or edx, 0x62d4fce3
add edx, esi
mov edi, edx
xor edi, 0xffffffff
and edi, 0x632b7084
mov esi, edx
and esi, 0x9cd48f7b
imul esi, edi
mov edi, edx
and edi, 0x632b7084
or edx, 0x632b7084
imul edx, edi
add edx, esi
mov dword [ebp - 0xdc], edx
mov dword [eax], 1
mov ecx, dword [ecx]
xor edx, edx
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
mov ecx, eax
mov eax, dword [ebp - 0xdc]
cmp ecx, 0
setne cl
mov byte [ebp - 0xd5], cl
cmp eax, 0x591f9f9b
jb 0x100541ef
mov al, byte [ebp - 0xd5]
test al, 1
jne 0x10053d02
jmp 0x10053bff
mov eax, dword [0x1027f224]
add eax, dword [0x1027f228]
mov ecx, 0xe10a0b68
xor edx, edx
div ecx
mov edx, eax
mov eax, dword [ebp - 0x58]
mov esi, edx
and esi, 0x2780958
mov ecx, edx
or ecx, 0x2780958
xor ecx, 0xffffffff
imul ecx, esi
mov esi, edx
and esi, 0xfd87f6a7
or edx, 0xfd87f6a7
imul edx, esi
add edx, ecx
mov ecx, edx
and ecx, 0x36baf7c9
or edx, 0x36baf7c9
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
mov dword [ebp - 0xe0], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov eax, dword [ebp - 0xe0]
cmp eax, 0x629a1d89
je 0x10054224
mov ecx, dword [ebp - 0x48]
lea eax, str.Failed_to_set_cipher_mode.
sub esp, 4
mov dword [esp], eax
call fcn.1004f7c0
mov eax, dword [0x1027f22c]
or eax, dword [0x1027f230]
imul eax, eax, 0x202fbf0e
mov ecx, eax
and ecx, 0x8fa5e3f6
shl ecx, 1
add eax, 0x8fa5e3f6
sub eax, ecx
add eax, 0x5918eda
cmp eax, 0x4a9b2db9
jb 0x10054255
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026a94c
call fcn.101ee0b1
add esp, 8
jmp 0x1005401f
mov ecx, dword [ebp - 0x30]
call fcn.10051390
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x40]
mov esi, eax
mov eax, dword [ebp - 0x44]
mov dword [eax], esi
mov dword [ebp - 0x10], 3
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10054640
jmp 0x10053d2f
mov ecx, dword [ebp - 0x40]
call fcn.1004fb20
mov edx, dword [ebp - 0x58]
mov ecx, eax
mov eax, dword [ebp - 0x44]
mov edx, dword [edx]
xor esi, esi
sub esp, 0x18
mov dword [esp], edx
mov dword [esp + 4], 0
mov dword [esp + 8], 1
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
call dword [sym.imp.ADVAPI32.dll_CryptDecrypt]
cmp eax, 0
jne 0x10053ddd
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov ecx, dword [ebp - 0x3c]
lea eax, str.Failed_to_decrypt_data.
sub esp, 4
mov dword [esp], eax
call fcn.1004f7c0
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x10], 4
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026a94c
call fcn.101ee0b1
add esp, 8
jmp 0x1005401f
mov eax, dword [ebp - 0x58]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
call eax
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0
mov eax, dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
call eax
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov edx, dword [eax]
mov dword [ebp - 0x10], 4
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10052530
jmp 0x10053e2a
mov ecx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x38]
mov byte [eax], 0
call fcn.10051390
mov ecx, dword [ebp - 0x40]
mov esi, eax
call fcn.1004fb20
mov ecx, dword [ebp - 0x2c]
mov edx, eax
sub esp, 8
mov eax, esp
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.10039df0
jmp 0x10053e5b
mov eax, dword [0x1027f25c]
or eax, dword [0x1027f260]
imul eax, eax, 0x30f0f66f
imul ecx, eax, 0xb45ae52e
mov eax, ecx
and eax, 0x2832ec4c
xor ecx, 0x2832ec4c
or eax, ecx
cmp eax, 0xe87f1cb0
jae 0x10054261
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
test byte [eax], 1
jne 0x10053f59
mov eax, dword [0x1027f26c]
xor eax, dword [0x1027f270]
mov ecx, 0xdfd9e568
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xa8e58d03
and ecx, 0x571a72fc
shl ecx, 1
sub ecx, eax
mov eax, ecx
xor eax, 0xb25129a0
and eax, ecx
cmp eax, 0xa2bf7f2a
ja 0x1005426c
mov ecx, dword [ebp - 0x2c]
mov edi, dword [0x1027f274]
mov esi, dword [0x1027f278]
mov eax, edi
xor eax, 0xffffffff
and eax, 0x4561a90c
and edi, 0xba9e56f3
mov edx, esi
xor edx, 0xffffffff
and edx, 0x4561a90c
and esi, 0xba9e56f3
or eax, edi
or edx, esi
xor eax, edx
mov esi, 0x5a906691
xor edx, edx
div esi
mov edx, eax
xor edx, 0xa5c2734a
and eax, 0x5a3d8cb5
shl eax, 1
sub eax, edx
mov edx, eax
xor edx, 0x6f166cb
xor edx, 0xffffffff
or eax, 0x6f166cb
and eax, edx
mov dword [ebp - 0xe4], eax
call fcn.100061b0
mov eax, dword [ebp - 0xe4]
cmp eax, 0xc01caaa3
jae 0x1005426c
jmp 0x10053f59
mov eax, dword [0x1027f27c]
xor edx, edx
div dword [0x1027f280]
mov ecx, 0x4f593d02
xor edx, edx
div ecx
or eax, 0xbc51cd6c
sub eax, 0xa34a1f69
cmp eax, 0x192d1ef1
ja 0x10054279
mov ecx, dword [ebp - 0x40]
mov eax, dword [0x1027f284]
and eax, dword [0x1027f288]
add eax, 0xcb273dff
sub eax, 0x5e9851b3
sub eax, 0xbfebd756
add eax, 0x5e9851b3
mov esi, eax
xor esi, 0xffffffff
and esi, 0xa3b3ea02
mov edx, eax
and edx, 0x5c4c15fd
imul edx, esi
mov esi, eax
and esi, 0xa3b3ea02
or eax, 0xa3b3ea02
imul eax, esi
add eax, edx
mov dword [ebp - 0xe8], eax
call fcn.1004fcd0
mov ecx, dword [ebp - 0x68]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x6c]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x34]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x30]
call fcn.1004fcd0
mov eax, dword [ebp - 0xe8]
cmp eax, 0xd0c34e70
jae 0x10053f84
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x18]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp - 0x30]
call fcn.1004fb20
mov ecx, eax
sub esp, 0xc
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 8], 8
mov dword [eax + 4], str.Salted__
call fcn.101eea5d
add esp, 0xc
jmp 0x100531b5
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0xa0]
sub esp, 4
mov dword [esp], eax
call fcn.10052b20
mov ecx, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xa4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x10
call fcn.10052fc0
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x98]
sub esp, 4
mov dword [esp], eax
call fcn.10052b20
mov ecx, dword [ebp - 0x98]
mov eax, dword [ebp - 0x9c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 8
call fcn.10052fc0
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x90]
sub esp, 4
mov dword [esp], eax
call fcn.10051d80
mov ecx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x94]
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x10053299
jmp 0x10053491
jmp 0x1005352d
mov ecx, dword [ebp - 0x6c]
call fcn.10051350
mov ecx, dword [ebp - 0x68]
call fcn.10051350
jmp 0x100535bc
mov eax, dword [ebp - 0x64]
mov dword [eax], 0
xor ecx, ecx
sub esp, 0x14
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0xf0000000
call dword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
jmp 0x100536cf
jmp 0x10053737
jmp 0x10053789
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x6c]
mov byte [eax], 8
mov byte [eax + 1], 2
mov word [eax + 2], 0
mov dword [eax + 4], 0x6601
mov dword [eax + 8], 8
call fcn.1004fb20
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x5c]
mov esi, eax
mov eax, dword [ebp - 0x58]
mov edi, dword [esi]
mov dword [ecx + 0xc], edi
mov esi, dword [esi + 4]
mov dword [ecx + 0x10], esi
mov dword [eax], 0
mov edx, dword [edx]
xor esi, esi
sub esp, 0x18
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x14
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [sym.imp.ADVAPI32.dll_CryptImportKey]
jmp 0x100537ef
jmp 0x10053950
mov ecx, dword [ebp - 0x68]
call fcn.1004fb20
mov ecx, dword [ebp - 0x58]
mov ecx, dword [ecx]
xor edx, edx
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
jmp 0x100539f5
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
mov dword [eax], 1
mov ecx, dword [ecx]
xor edx, edx
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptSetKeyParam]
jmp 0x10053b4b
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0
call dword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
jmp 0x10053bff
mov dword [ebp - 0x10], 3
jmp 0x10053cdd
mov eax, dword [ebp - 0x38]
mov byte [eax], 1
jmp 0x10053e8c
mov ecx, dword [ebp - 0x2c]
call fcn.100061b0
jmp 0x10053ed6
mov ecx, dword [ebp - 0x40]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x68]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x6c]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x34]
call fcn.1004fcd0
mov ecx, dword [ebp - 0x30]
call fcn.1004fcd0
jmp 0x10053f84