Function at 0x10039550
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1fc
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0x204]
push ebp
mov ebp, dword [esp + 0x204]
push 0xff
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x210]
lea ecx, [esp + 0x101]
push 0
push ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
mov byte [esp + 0x108], 0
call fcn.1008e320
push 0x7f
lea edx, [esp + 0x45]
push 0
push edx
mov byte [esp + 0x4c], 0
call fcn.1008e320
push 0x47
lea eax, [esp + 0xd1]
push 0
push eax
mov byte [esp + 0xd8], 0
call fcn.1008e320
add esp, 0x24
mov dword [esp + 4], 0
test ebp, ebp
je 0x10039a61
mov eax, dword [ebp + 4]
test eax, eax
je 0x10039a61
cmp dword [eax + 8], 0
je 0x10039a61
cmp dword [eax], 0
je 0x10039a61
mov eax, dword [eax]
cmp dword [eax + 0x14], 0
je 0x10039a61
cmp dword [eax + 0x10], 0
je 0x10039a61
mov eax, dword [ebp]
test eax, eax
je 0x10039a61
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x38]
push edx
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Final_DIGEST
add esp, 0xc
test eax, eax
je 0x10039656
mov eax, 0x22040018
pop ebp
mov ecx, dword [esp + 0x1f8]
xor ecx, esp
call fcn.10087a66
add esp, 0x1fc
ret
mov eax, dword [ebp + 0x18]
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Start_BIGINT_Pool
add esp, 4
test eax, eax
jne 0x10039a66
mov ecx, dword [ebp + 0x18]
push ebx
push esi
push edi
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x10039a18
mov edx, dword [ebp + 0x18]
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
test edi, edi
je 0x10039a18
mov eax, dword [ebp + 0x18]
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x10039a18
mov ecx, dword [ebp + 0x18]
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
add esp, 4
mov dword [esp + 0x34], eax
test eax, eax
je 0x10039a18
mov esi, dword [ebp + 4]
mov dword [esp + 0x1c], esi
call sym.inicrypto_v5.4.1.dll_ISC_New_ECPOINT
mov ebx, eax
mov dword [esp + 0x10], ebx
test ebx, ebx
jne 0x100396ef
mov edi, 0x2204003b
jmp 0x10039a29
call sym.inicrypto_v5.4.1.dll_ISC_New_BIGINT
mov dword [ebx], eax
call sym.inicrypto_v5.4.1.dll_ISC_New_BIGINT
cmp dword [ebx], 0
mov dword [ebx + 4], eax
je 0x100396e5
test eax, eax
je 0x100396e5
mov eax, dword [ebp + 8]
test eax, eax
je 0x10039753
cmp dword [ebp + 0xc], 0
je 0x10039753
mov edx, dword [ebp + 0x18]
push edx
push eax
push eax
mov eax, dword [esp + 0x20]
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Add_BIGINT
add esp, 0x10
test eax, eax
jne 0x100399ac
mov ebx, dword [ebp + 0xc]
mov edi, dword [esi]
mov esi, dword [esp + 0x10]
push ebx
call fcn.10072000
add esp, 4
test eax, eax
je 0x1003980f
mov edi, 0x22040068
jmp 0x10039a29
mov ecx, dword [esi]
mov edx, dword [ecx + 0x14]
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Bits_Length
mov ebx, eax
mov eax, dword [ebp + 0x10]
add esp, 4
test eax, eax
jne 0x1003979d
lea ebx, [ebx]
push ebx
push edi
call sym.inicrypto_v5.4.1.dll_ISC_Get_Rand_BIGINT_Ex
add esp, 8
test eax, eax
jne 0x100399b3
mov eax, dword [esi]
mov ecx, dword [eax + 0x14]
push ecx
push edi
call sym.inicrypto_v5.4.1.dll_ISC_Cmp_BIGINT
add esp, 8
test eax, eax
jge 0x10039770
cmp dword [edi + 4], 0
je 0x10039770
jmp 0x100397a7
push eax
push edi
call sym.inicrypto_v5.4.1.dll_ISC_Copy_BIGINT
add esp, 8
lea edx, [esp + 0xc0]
push edx
push edi
call sym.inicrypto_v5.4.1.dll_ISC_BIGINT_To_Binary_Unsigned
mov edx, dword [ebp]
lea ecx, [ebx + ebx - 2]
mov ebx, dword [esp + 0x1c]
push ecx
push eax
mov eax, dword [edx]
push eax
mov edx, ebx
lea ecx, [esp + 0xd4]
call fcn.100722c0
add esp, 0x14
test eax, eax
jne 0x100399ba
mov ecx, dword [ebp + 0x18]
mov edx, dword [esi]
mov eax, dword [edx + 0x14]
push ecx
push eax
push ebx
push ebx
push 0
call sym.inicrypto_v5.4.1.dll_ISC_Div_BIGINT
add esp, 0x14
test eax, eax
jne 0x100399c1
mov edi, dword [esi]
mov esi, dword [esp + 0x10]
call fcn.10071dd0
test eax, eax
jne 0x100399c8
cmp dword [ebp + 8], 0
jne 0x1003981d
call sym.inicrypto_v5.4.1.dll_ISC_New_BIGINT
mov dword [ebp + 8], eax
cmp dword [ebp + 0xc], 0
jne 0x1003982b
call sym.inicrypto_v5.4.1.dll_ISC_New_ECPOINT
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 8]
test eax, eax
je 0x100396e5
cmp dword [ebp + 0xc], 0
je 0x100396e5
mov esi, dword [esp + 0x14]
push esi
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Copy_BIGINT
add esp, 8
test eax, eax
jne 0x10039a11
mov ecx, dword [esp + 0x10]
mov edi, dword [ebp + 0xc]
push ecx
call fcn.10073260
add esp, 4
test eax, eax
jne 0x10039a11
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
lea edx, [esp + 0x108]
push edx
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_BIGINT_To_Binary_Unsigned
mov edi, eax
mov eax, dword [ebp]
mov edx, dword [eax]
push edx
push eax
mov dword [esp + 0x28], edi
call sym.inicrypto_v5.4.1.dll_ISC_Init_DIGEST
add esp, 0x10
test eax, eax
jne 0x100399cf
mov ecx, dword [ebp]
push edi
lea eax, [esp + 0x10c]
push eax
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Update_DIGEST
add esp, 0xc
test eax, eax
jne 0x100399d6
mov edi, dword [esp + 0x3c]
mov eax, dword [ebp]
lea edx, [esp + 0x18]
push edx
push edi
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Final_DIGEST
add esp, 0xc
test eax, eax
jne 0x100399dd
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov dword [ecx], eax
test eax, eax
jle 0x10039900
mov ecx, edi
lea edx, [esp + 0x40]
sub ecx, edx
nop
dec eax
lea edx, [ecx + eax]
mov dl, byte [esp + edx + 0x40]
xor byte [esp + eax + 0x40], dl
test eax, eax
jg 0x100398f0
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x20]
push ebx
push eax
lea ecx, [esp + 0x48]
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Binary_To_BIGINT
add esp, 0xc
test eax, eax
je 0x10039a0a
mov edi, dword [esp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [edi]
mov ecx, dword [eax + 0x14]
push edx
push ecx
push ebx
push ebx
push 0
call sym.inicrypto_v5.4.1.dll_ISC_Div_BIGINT
add esp, 0x14
test eax, eax
jne 0x10039a0a
push ebx
push esi
call sym.inicrypto_v5.4.1.dll_ISC_Cmp_BIGINT
add esp, 8
test eax, eax
jge 0x10039967
mov edx, dword [ebp + 0x18]
mov eax, dword [edi]
mov ecx, dword [eax + 0x14]
push edx
push ecx
push esi
push esi
call sym.inicrypto_v5.4.1.dll_ISC_Add_BIGINT
add esp, 0x10
test eax, eax
jne 0x100399ba
mov edx, dword [ebp + 0x18]
push edx
push ebx
push esi
push esi
call sym.inicrypto_v5.4.1.dll_ISC_Sub_BIGINT
add esp, 0x10
test eax, eax
jne 0x100399e4
mov eax, dword [ebp + 0x18]
mov ecx, dword [edi]
mov edx, dword [ecx + 0x14]
push eax
mov eax, dword [edi + 8]
push edx
push eax
push esi
mov esi, dword [esp + 0x44]
push esi
call sym.inicrypto_v5.4.1.dll_ISC_Mod_Mtp_BIGINT
add esp, 0x14
test eax, eax
jne 0x100399eb
cmp dword [esi + 4], eax
jne 0x100399f2
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
jmp 0x10039707
mov edi, 0x22040001
jmp 0x10039a29
mov edi, 0x2204004d
jmp 0x10039a29
mov edi, 0x22040059
jmp 0x10039a29
mov edi, 0x2204003e
jmp 0x10039a29
mov edi, 0x22040040
jmp 0x10039a29
mov edi, 0x22040022
jmp 0x10039a29
mov edi, 0x2204005b
jmp 0x10039a29
mov edi, 0x22040018
jmp 0x10039a29
mov edi, 0x22040058
jmp 0x10039a29
mov edi, 0x22040042
jmp 0x10039a29
mov ecx, dword [esp + 0x28]
push ecx
push esi
call sym.inicrypto_v5.4.1.dll_ISC_BIGINT_To_Binary_Unsigned
mov edx, dword [esp + 0x38]
add esp, 8
mov dword [edx], eax
xor edi, edi
jmp 0x10039a29
mov edi, 0x22040005
jmp 0x10039a29
mov edi, 0x2204000d
jmp 0x10039a29
mov eax, dword [ebp + 0x18]
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Finish_BIGINT_Pool
add esp, 4
mov edi, 0x2204001b
mov ecx, dword [ebp + 0x18]
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Finish_BIGINT_Pool
mov eax, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x10039a46
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Free_ECPOINT
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
pop ebp
mov ecx, dword [esp + 0x1f8]
xor ecx, esp
call fcn.10087a66
add esp, 0x1fc
ret
mov eax, 0x22040049
mov ecx, dword [esp + 0x1fc]
pop ebp
xor ecx, esp
call fcn.10087a66
add esp, 0x1fc
ret