Function at 0x10052640
Capabilities:
Encode data using xor
Hash data via wincrypt
Hash data with md5
Initialize hashing via wincrypt

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x13c
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x34], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 8]
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], 0x100636e0
mov ecx, dword fs:[0]
mov dword [ebp - 0x18], ecx
mov dword fs:[0], eax
mov eax, dword [0x10283eec]
mov ecx, dword [0x10283ef0]
or eax, ecx
add eax, 0x8ee7eba7
add eax, 1
mov ecx, eax
xor ecx, 0x53d577ab
and eax, 0xac2a8854
shl eax, 1
sub eax, ecx
add eax, 0x2e15f1a9
cmp eax, 0x810fcb7b
jbe 0x10053810
mov edx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x34]
mov eax, dword [0x10283ef4]
mov esi, dword [0x10283ef8]
sub eax, esi
mov ebx, eax
not ebx
and ebx, 0x685e56c8
mov esi, eax
and esi, 0x97a1a937
imul esi, ebx
mov ebx, eax
and ebx, 0x685e56c8
or eax, 0x685e56c8
imul eax, ebx
lea eax, [eax + esi - 0x1a827341]
and eax, 0xfffffffd
xor eax, 0x2ba8c8c8
mov dword [ebp - 0x3c], eax
push eax
mov eax, esp
mov dword [ebp - 0x5c], eax
push eax
mov eax, esp
mov dword [ebp - 0x58], eax
push eax
mov eax, esp
mov dword [ebp - 0x54], eax
push eax
mov ebx, esp
mov dword [ebp - 0xec], ebx
push eax
mov esi, esp
mov dword [ebp - 0xe8], esi
push eax
mov eax, esp
mov dword [ebp - 0x4c], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x50], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x48], eax
push eax
mov eax, esp
mov dword [ebp - 0x40], eax
push eax
mov eax, esp
mov dword [ebp - 0x44], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0xe4], eax
push eax
mov eax, esp
mov dword [ebp - 0xe0], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0xdc], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0xd8], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0xd4], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0xd0], eax
push eax
mov eax, esp
mov dword [ebp - 0xcc], eax
push eax
mov eax, esp
mov dword [ebp - 0xc8], eax
push eax
mov eax, esp
mov dword [ebp - 0xc4], eax
push eax
mov eax, esp
mov dword [ebp - 0xc0], eax
push eax
mov eax, esp
mov dword [ebp - 0xbc], eax
push eax
mov eax, esp
mov dword [ebp - 0xb8], eax
push eax
mov eax, esp
mov dword [ebp - 0xb4], eax
push eax
mov eax, esp
mov dword [ebp - 0xb0], eax
push eax
mov eax, esp
mov dword [ebp - 0xac], eax
push eax
mov eax, esp
mov dword [ebp - 0xa8], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0xa4], eax
push eax
mov eax, esp
mov dword [ebp - 0xa0], eax
push eax
mov eax, esp
mov dword [ebp - 0x9c], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x98], eax
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x94], eax
push eax
mov eax, esp
mov dword [ebp - 0x90], eax
push eax
mov eax, esp
mov dword [ebp - 0x8c], eax
push eax
mov eax, esp
mov dword [ebp - 0x88], eax
push eax
mov eax, esp
mov dword [ebp - 0x84], eax
push eax
mov eax, esp
mov dword [ebp - 0x80], eax
push eax
mov eax, esp
mov dword [ebp - 0x7c], eax
push eax
mov eax, esp
mov dword [ebp - 0x78], eax
push eax
mov eax, esp
mov dword [ebp - 0x74], eax
push eax
mov eax, esp
mov dword [ebp - 0x70], eax
push eax
mov eax, esp
mov dword [ebp - 0x6c], eax
push eax
mov eax, esp
mov dword [ebp - 0x68], eax
push eax
mov eax, esp
mov dword [ebp - 0x64], eax
push eax
mov eax, esp
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x5c]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x58]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x54]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x28]
mov dword [ebx], eax
mov eax, dword [ebp - 0x4c]
mov dword [esi], edi
mov dword [eax], edx
call fcn.10053b90
mov ecx, dword [ebp - 0x48]
call fcn.10053b90
mov ecx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x40]
mov dword [eax], 0
mov dword [ecx], 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]
mov ecx, eax
mov eax, dword [ebp - 0x3c]
cmp ecx, 0
setne cl
mov byte [ebp - 0x35], cl
cmp eax, 0x84d9f70b
jae 0x100526cc
mov al, byte [ebp - 0x35]
test al, 1
jne 0x1005299a
jmp 0x10052920
mov ecx, dword [ebp - 0xe4]
lea eax, str.Failed_to_acquire_cryptographic_context.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov ecx, dword [0x10283f0c]
mov edx, dword [0x10283f10]
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
add eax, 0x79efedcd
add eax, 1
xor eax, 0xc79c4d9e
add eax, 0x829748e3
add eax, 0xa289299f
sub eax, 0x829748e3
cmp eax, 0xa411db3a
jb 0x100538d5
mov ecx, dword [ebp - 0xe4]
mov dword [ebp - 0x10], 1
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10053810
mov eax, dword [0x10283f1c]
xor edx, edx
div dword [0x10283f20]
mov ecx, eax
and ecx, 0x591164d6
shl ecx, 1
xor eax, 0x591164d6
add eax, ecx
imul eax, eax, 0xa047249
imul eax, eax, 0x3129185a
cmp eax, 0x9b7c90b9
jae 0x100538e1
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov edi, dword [0x10283f24]
add edi, dword [0x10283f28]
imul edi, edi, 0xec5c3014
sub edi, 0xbc2bcf9c
add edi, 0xf77ad667
mov dword [ebp - 0xf0], edi
mov edx, dword [edx]
mov esi, dword [esi]
sub edx, 0x40c881cd
add edx, esi
add edx, 0x40c881cd
mov dword [eax], edx
call fcn.10053b90
mov ecx, dword [ebp - 0xd8]
call fcn.10053b90
mov eax, dword [ebp - 0xf0]
cmp eax, 0x16000b02
jbe 0x100538e1
jmp 0x10052a3f
mov ecx, dword [ebp - 0xdc]
mov eax, dword [0x10283f34]
mov edx, dword [0x10283f38]
xor eax, 0xffffffff
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
xor eax, 0x9a788d65
mov esi, 0x8a91eb7d
xor edx, edx
div esi
mov edx, eax
mov eax, edx
xor eax, 0xffffffff
and eax, 0xb87aa57a
and edx, 0x47855a85
or eax, edx
mov dword [ebp - 0xf8], eax
call fcn.10053d40
mov edx, dword [ebp - 0xe0]
mov ecx, eax
mov eax, dword [ebp - 0xf8]
cmp ecx, dword [edx]
setl cl
mov byte [ebp - 0xf1], cl
cmp eax, 0x8ae1db6f
jb 0x10052a3f
mov al, byte [ebp - 0xf1]
test al, 1
jne 0x10052abf
jmp 0x10053588
mov eax, dword [0x10283f3c]
xor edx, edx
div dword [0x10283f40]
mov ecx, eax
mov eax, ecx
and eax, 0x882a7c34
or ecx, 0x882a7c34
add eax, ecx
mov ecx, eax
and ecx, 0x711070c5
shl ecx, 1
add eax, 0x711070c5
sub eax, ecx
imul eax, eax, 0xbfdfaa95
cmp eax, 0xf5355e64
jae 0x1005390e
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
xor edx, edx
sub esp, 0x14
mov dword [esp], ecx
mov dword [esp + 4], 0x8003
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
cmp eax, 0
jne 0x10052cc0
mov edx, dword [0x10283f4c]
mov esi, dword [0x10283f50]
mov ecx, esi
xor ecx, 0xffffffff
mov eax, edx
and eax, ecx
mov ecx, edx
xor ecx, esi
add edx, ecx
sub edx, eax
sub edx, 0xfad156ad
add edx, 0x4d79a463
add edx, 0xfad156ad
mov ecx, edx
xor ecx, 0xffffffff
mov eax, ecx
and eax, 0xa6f79833
and edx, 0x590867cc
or eax, edx
xor eax, 0xc3d4d822
or ecx, 0x9adcbfee
xor ecx, 0xffffffff
or eax, ecx
add eax, 0x84af6d80
cmp eax, 0xefa53879
jae 0x10053945
mov eax, dword [ebp - 0x40]
mov ecx, dword [0x10283f54]
xor ecx, dword [0x10283f58]
xor ecx, 0x4876871
or ecx, 0x9d31ea0e
sub ecx, 0xa1c2e449
add ecx, 0x710ebec0
add ecx, 0xa1c2e449
mov dword [ebp - 0xfc], 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 - 0xfc]
cmp eax, 0xdc6e9bff
je 0x10053945
mov ecx, dword [ebp - 0xd4]
lea eax, str.Failed_to_create_hash_object.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov ecx, dword [0x10283f5c]
mov eax, dword [0x10283f60]
add ecx, 0xcd472405
sub ecx, eax
sub ecx, 0xcd472405
sub ecx, 0x20353def
mov eax, ecx
and eax, 0x92bfcc4
or ecx, 0x92bfcc4
add eax, ecx
add eax, 0x2a6cc50b
cmp eax, 0x1104c6a9
jbe 0x10053965
mov eax, dword [0x10283f64]
mov esi, dword [0x10283f68]
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
imul ecx, eax, 0xa7b0d08e
mov eax, ecx
xor eax, 0xeb2ab09e
and eax, ecx
sub eax, 0x21c506b6
cmp eax, 0xd1f949e
je 0x10052c4e
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10053810
mov ecx, dword [ebp - 0xd8]
call fcn.10053eb0
test al, 1
jne 0x10052ed6
mov ecx, dword [ebp - 0xd8]
call fcn.10053d40
mov ecx, dword [ebp - 0xd8]
mov dword [ebp - 0x100], eax
call fcn.10052340
mov edx, dword [ebp - 0x44]
mov ecx, eax
mov eax, dword [ebp - 0x100]
mov edx, dword [edx]
xor esi, esi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp eax, 0
jne 0x10052e8a
mov eax, dword [0x10283f6c]
mov ecx, dword [0x10283f70]
sub eax, 0x23c4890
add eax, ecx
add eax, 0x23c4890
xor eax, 0xb9ed6e53
sub eax, 0x20555c2b
sub eax, 0x5ff9cc9
add eax, 0x20555c2b
xor eax, 0xffffffff
or eax, 0x6b2390c3
xor eax, 0xffffffff
cmp eax, 0x340a9bff
ja 0x1005396a
mov eax, dword [ebp - 0x44]
mov ecx, dword [0x10283f74]
mov esi, dword [0x10283f78]
mov edi, ecx
xor edi, 0xffffffff
mov edx, esi
and edx, edi
xor esi, 0xffffffff
and ecx, esi
or edx, ecx
add edx, 0xaed6d38a
sub edx, 0xd31d493f
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x645f2074
and edx, 0x9ba0df8b
or ecx, edx
mov dword [ebp - 0x104], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [ebp - 0x40]
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 - 0x104]
cmp eax, 0xe372a898
je 0x10052d64
mov ecx, dword [ebp - 0xd0]
lea eax, str.Failed_to_hash_data.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov eax, dword [0x10283f84]
mov esi, dword [0x10283f88]
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
add eax, 0x7c7c5fc5
mov edx, eax
xor edx, 0xffffffff
and edx, 0xaae4a851
mov ecx, eax
and ecx, 0x551b57ae
imul ecx, edx
mov edx, eax
and edx, 0xaae4a851
or eax, 0xaae4a851
imul eax, edx
add eax, ecx
imul eax, eax, 0x178b4b5b
cmp eax, 0x5fd5a9c3
je 0x10052df9
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10053810
mov eax, dword [0x10283f8c]
sub eax, dword [0x10283f90]
or eax, 0x9558d042
mov ecx, 0x36c2f471
xor edx, edx
div ecx
mov edx, eax
and edx, 0x6435dbac
mov ecx, eax
or ecx, 0x6435dbac
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0x9bca2453
or eax, 0x9bca2453
imul eax, edx
add eax, ecx
cmp eax, 0x8298d57a
ja 0x1005399b
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0x50]
mov edi, dword [ebp - 0xc8]
mov esi, dword [ebp - 0xc4]
mov ebx, dword [ebp - 0xc0]
call fcn.10054020
mov eax, dword [ebp - 0xe8]
mov edx, dword [ebp - 0xcc]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10054480
mov eax, dword [ebp - 0xe8]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edi
call fcn.10054680
mov ecx, dword [ebp - 0x50]
sub esp, 4
mov eax, esp
mov dword [eax], ebx
call fcn.10054870
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 0xbc]
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebx]
mov dword [esi], ebx
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [eax]
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.10054370
jmp 0x10052f67
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
call fcn.10053eb0
test al, 1
jne 0x100530e2
mov ecx, dword [0x10283fac]
or ecx, dword [str.JTa]
mov eax, ecx
and eax, 0x65b9513f
or ecx, 0x65b9513f
xor eax, 0xffffffff
and eax, ecx
mov ecx, 0x3422c4d5
xor edx, edx
div ecx
add eax, 0xee5affbe
cmp eax, 0xd4b646b9
jb 0x100539a0
mov edx, dword [ebp - 0xb8]
mov edi, dword [ebp - 0xb4]
mov esi, dword [ebp - 0xb0]
mov ebx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10054df0
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edi
call fcn.10054e30
mov ecx, dword [ebp - 0x50]
sub esp, 4
mov eax, esp
mov dword [eax], ebx
call fcn.10054870
mov eax, dword [ebp - 0xb8]
mov edx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebx]
mov dword [esi], ebx
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [eax]
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.100549f0
jmp 0x1005302c
mov ecx, dword [0x10283fbc]
imul ecx, dword [0x10283fc0]
or ecx, 0x22aa2a8f
xor eax, eax
sub eax, ecx
add eax, 0x56e03380
xor ecx, ecx
sub ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
and eax, 0xae9548e
xor eax, 0xffffffff
xor ecx, 0xffffffff
or ecx, 0xae9548e
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x687ba446
ja 0x100539f5
mov ecx, dword [0x10283fc4]
mov edx, dword [0x10283fc8]
mov eax, ecx
xor eax, edx
xor edx, 0xffffffff
and ecx, edx
shl ecx, 1
sub ecx, eax
add ecx, 0x68e0e485
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x48ddfa6d
and ecx, 0xb7220592
or eax, ecx
mov edx, eax
xor edx, 0xffffffff
and edx, 0xf5779635
mov ecx, eax
and ecx, 0xa8869ca
imul ecx, edx
mov edx, eax
and edx, 0xf5779635
or eax, 0xf5779635
imul eax, edx
add eax, ecx
cmp eax, 0x71cb1cfd
jb 0x10053079
jmp 0x100530e2
mov ecx, dword [ebp - 0x50]
call fcn.10053d40
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x108], eax
call fcn.10052340
mov edx, dword [ebp - 0x44]
mov ecx, eax
mov eax, dword [ebp - 0x108]
mov edx, dword [edx]
xor esi, esi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call dword [sym.imp.ADVAPI32.dll_CryptHashData]
cmp eax, 0
jne 0x1005325c
mov eax, dword [0x10283fcc]
xor edx, edx
div dword [0x10283fd0]
imul eax, eax, 0xd28e326a
imul ecx, eax, 0xec064473
mov eax, ecx
and eax, 0xa6196cb7
xor ecx, 0xffffffff
and ecx, 0x59e69348
xor eax, 0xffffffff
xor ecx, 0xffffffff
and eax, ecx
cmp eax, 0x172a4f29
je 0x100539fa
mov eax, dword [0x10283fd4]
mov esi, dword [str.7_1r]
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
xor eax, 0xffffffff
or eax, 0x7c922fb
xor eax, 0xffffffff
mov ecx, 0x8028345b
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [ebp - 0x44]
add ecx, 0x2bdabd8b
mov dword [ebp - 0x10c], ecx
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [ebp - 0x40]
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 - 0x10c]
cmp eax, 0x82d29bef
jae 0x10053168
mov ecx, dword [ebp - 0xa4]
lea eax, str.Failed_to_hash_data.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov eax, dword [0x10283fdc]
mov ecx, dword [0x10283fe0]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
add eax, 0xbb6ec190
add eax, 0xf7d7bb99
sub eax, 0x6443c7c6
cmp eax, 0x21d19df8
jbe 0x10053a2b
mov ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10053810
mov eax, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0x44]
mov dword [ecx], 0
mov dword [eax], 4
mov edx, dword [edx]
xor esi, esi
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], 4
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
cmp eax, 0
jne 0x10053348
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [ebp - 0x40]
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 - 0x98]
lea eax, str.Failed_to_get_hash_length.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov eax, dword [0x10283fec]
xor eax, dword [0x10283ff0]
xor eax, 0xffffffff
or eax, 0xaf6e301a
xor eax, 0xffffffff
add eax, 0x507cce56
add eax, 0xece62157
add eax, 0x1b127d12
sub eax, 0xece62157
cmp eax, 0xd82410c6
je 0x10053a37
mov ecx, dword [ebp - 0x98]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10053810
mov dword [ebp - 0x10], 3
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10055000
jmp 0x1005336e
mov ecx, dword [0x1028400c]
mov edx, dword [0x10284010]
mov eax, ecx
and eax, edx
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
xor ecx, 0xffffffff
or eax, ecx
add eax, 0x16570892
imul eax, eax, 0x3ddcf5d7
xor eax, 0xd9ab77ea
cmp eax, 0xc29090d9
ja 0x10053a43
mov ecx, dword [ebp - 0xd8]
mov eax, dword [0x10284014]
imul eax, dword [0x10284018]
sub eax, 0x20a0cd58
mov esi, 0x2975fd56
xor edx, edx
div esi
add eax, 0x4ccc37e2
sub eax, 0x463d60a3
sub eax, 0x4ccc37e2
mov dword [ebp - 0x114], eax
call fcn.10052340
mov edx, dword [ebp - 0x44]
mov ecx, eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [edx]
xor esi, esi
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
mov ecx, eax
mov eax, dword [ebp - 0x114]
cmp ecx, 0
setne cl
mov byte [ebp - 0x10d], cl
cmp eax, 0xa3c1dc2
jb 0x10053a43
mov al, byte [ebp - 0x10d]
test al, 1
jne 0x100534e8
jmp 0x10053445
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [ebp - 0x40]
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 - 0x94]
lea eax, str.Failed_to_get_hash_value.
sub esp, 4
mov dword [esp], eax
call fcn.10052110
mov eax, dword [0x1028401c]
mov ecx, dword [0x10284020]
sub eax, 0x9fb6ce22
add eax, ecx
add eax, 0x9fb6ce22
imul eax, eax, 0x85c85f71
xor eax, 0xffffffff
or eax, 0xd4fee460
xor eax, 0xffffffff
sub eax, 0xe5fddb5c
cmp eax, 0x56590d0f
jae 0x10053a86
mov ecx, dword [ebp - 0x94]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], 0x1026f93c
call fcn.101f26d1
add esp, 8
jmp 0x10053810
mov edi, dword [ebp - 0x8c]
mov esi, dword [ebp - 0x88]
mov ebx, dword [ebp - 0x84]
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
sub esp, 4
mov eax, esp
mov dword [eax], ecx
mov eax, dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
call eax
mov ecx, dword [ebp - 0xd8]
mov edx, dword [ebp - 0x90]
sub esp, 4
mov eax, esp
mov dword [eax], edx
call fcn.10054870
mov ecx, dword [ebp - 0xd8]
sub esp, 4
mov eax, esp
mov dword [eax], edi
call fcn.10055490
mov ecx, dword [ebp - 0xdc]
sub esp, 4
mov eax, esp
mov dword [eax], ebx
call fcn.10054870
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0xdc]
mov ebx, dword [ebx]
mov dword [esi], ebx
mov esi, dword [esi]
mov edi, dword [edi]
mov ebx, dword [eax]
mov dword [ebp - 0x10], 3
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.10055040
jmp 0x10053583
jmp 0x10052a3f
mov ecx, dword [0x10284034]
mov esi, dword [0x10284038]
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
xor eax, 0xffffffff
mov edx, esi
xor edx, 0xffffffff
or eax, edx
mov edx, esi
xor edx, 0xffffffff
xor esi, 0xffffffff
or edx, esi
and ecx, edx
xor eax, 0xffffffff
or eax, ecx
mov ecx, 0x920b50fe
xor edx, edx
div ecx
mov ecx, eax
mov eax, dword [ebp - 0x40]
and ecx, 0xc8727b06
sub ecx, 0xe000be7e
mov dword [ebp - 0x120], 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 edx, dword [ebp - 0xec]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x78]
mov edx, dword [edx]
mov dword [ebp - 0x124], edx
sub esp, 4
mov dword [esp], eax
call fcn.10055490
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x78]
mov edx, dword [ebp - 0x7c]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x74]
sub esp, 4
mov dword [esp], eax
call fcn.10055490
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
mov eax, dword [ebp - 0x120]
mov edx, dword [edx]
mov dword [ebp - 0x11c], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x118], ecx
cmp eax, 0x77532a78
jae 0x10053588
mov ecx, dword [ebp - 0x124]
mov edx, dword [ebp - 0x11c]
mov esi, dword [ebp - 0x118]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.10055620
jmp 0x10053697
mov ecx, dword [0x1028403c]
xor ecx, dword [0x10284040]
or ecx, 0x2da4b95f
sub ecx, 0xc35e09fd
mov eax, ecx
xor eax, 0xffffffff
and eax, 0xe4de164f
and ecx, 0x1b21e9b0
or eax, ecx
cmp eax, 0x2b2a5758
jb 0x10053a92
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x68]
mov edx, dword [ebp - 0x54]
mov edi, dword [str.s_Kr]
mov esi, dword [0x10284048]
or edi, esi
mov esi, edi
xor esi, 0xffffffff
and esi, 0xa606dade
and edi, 0x59f92521
or esi, edi
and esi, 0xfb43ac8b
imul esi, esi, 0xfacc7393
mov dword [ebp - 0x130], esi
mov edx, dword [edx]
mov dword [ebp - 0x134], edx
sub esp, 4
mov dword [esp], eax
call fcn.10055490
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x60]
sub esp, 4
mov dword [esp], eax
call fcn.10055490
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
mov edx, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x70]
mov eax, dword [ebp - 0x130]
mov edx, dword [edx]
mov dword [ebp - 0x12c], edx
mov ecx, dword [ecx]
mov dword [ebp - 0x128], ecx
cmp eax, 0x5282327c
je 0x100536cc
mov ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x12c]
mov esi, dword [ebp - 0x128]
mov dword [ebp - 0x10], 3
sub esp, 8
mov eax, esp
mov dword [eax + 4], esi
mov dword [eax], edx
call fcn.10055620
jmp 0x100537d4
jmp 0x100537d9
mov ecx, dword [ebp - 0xd8]
call fcn.10052500
mov ecx, dword [ebp - 0xdc]
call fcn.10052500
mov ecx, dword [ebp - 0x48]
call fcn.10052500
mov ecx, dword [ebp - 0x50]
call fcn.10052500
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov eax, esp
push eax
mov edi, esp
push eax
mov edx, esp
push eax
mov ebx, esp
push eax
mov esi, esp
push eax
mov ecx, esp
mov dword [ebp - 0x144], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x148], ecx
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x140], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x138], ecx
push eax
mov ecx, esp
mov dword [ebp - 0x13c], ecx
mov ecx, dword [ebp - 0x34]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x148]
mov eax, dword [ebp - 0x30]
mov dword [edi], eax
mov eax, dword [ebp - 0x144]
mov edi, dword [ebp - 0x2c]
mov dword [edx], edi
mov edi, dword [ebp - 0x24]
mov edx, dword [ebp - 0x28]
mov dword [ebx], edx
mov edx, dword [ebp - 0x20]
mov dword [esi], edi
mov dword [eax], edx
call fcn.10053b90
mov ecx, dword [ebp - 0x140]
call fcn.10053b90
mov ecx, dword [ebp - 0x13c]
mov eax, dword [ebp - 0x138]
mov dword [eax], 0
mov dword [ecx], 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 0x100526cc
mov dword [ebp - 0x10], 1
jmp 0x10052972
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0xe0]
mov esi, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov edx, dword [edx]
add edx, dword [esi]
mov dword [eax], edx
call fcn.10053b90
mov ecx, dword [ebp - 0xd8]
call fcn.10053b90
jmp 0x100529cf
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x40]
mov ecx, dword [ecx]
xor edx, edx
sub esp, 0x14
mov dword [esp], ecx
mov dword [esp + 4], 0x8003
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
call dword [sym.imp.ADVAPI32.dll_CryptCreateHash]
jmp 0x10052aff
mov eax, dword [ebp - 0x40]
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 0x10052b9d
jmp 0x10052c4e
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [ebp - 0x40]
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 0x10052d64
jmp 0x10052ed6
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xb8]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.10054df0
mov ecx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0xb4]
mov ecx, dword [ecx]
sub esp, 4
mov dword [esp], eax
call fcn.10054e30
mov ecx, dword [ebp - 0x50]
mov eax, dword [ebp - 0xac]
sub esp, 4
mov dword [esp], eax
call fcn.10054870
mov ecx, dword [ebp - 0xac]
mov eax, dword [ebp - 0xb0]
mov ecx, dword [ecx]
mov dword [eax], ecx
jmp 0x10052fb0
jmp 0x10053079
mov eax, dword [ebp - 0x44]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov eax, dword [ebp - 0x40]
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 0x10053168
mov dword [ebp - 0x10], 3
jmp 0x10053234
mov dword [ebp - 0x10], 3
jmp 0x10053320
mov ecx, dword [ebp - 0xd8]
call fcn.10052340
mov edx, dword [ebp - 0x44]
mov ecx, eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [edx]
xor esi, esi
sub esp, 0x14
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
call dword [sym.imp.ADVAPI32.dll_CryptGetHashParam]
jmp 0x100533a6
mov dword [ebp - 0x10], 3
jmp 0x100534c0
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x68]
sub esp, 4
mov dword [esp], eax
call fcn.10055490
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x70]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
mov ecx, dword [ebp - 0xdc]
mov eax, dword [ebp - 0x60]
sub esp, 4
mov dword [esp], eax
call fcn.10055490
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
mov edx, dword [ebp - 0x64]
mov eax, dword [eax]
sub esp, 8
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.100556d0
jmp 0x100536cc