Function at 0x10039a80
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x2a4
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x2a0], eax
mov eax, dword [esp + 0x2ac]
push ebp
mov ebp, dword [esp + 0x2ac]
push esi
xor esi, esi
push 0x1ff
lea edx, [esp + 0xad]
push esi
push edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x18], esi
mov dword [esp + 0x20], esi
mov byte [esp + 0xb4], 0
call fcn.1008e320
push 0x7f
lea eax, [esp + 0x39]
push esi
push eax
mov byte [esp + 0x40], 0
call fcn.1008e320
add esp, 0x18
cmp ebp, esi
je 0x10039e5d
mov eax, dword [ebp + 4]
mov dword [esp + 0x10], eax
cmp eax, esi
je 0x10039e5d
mov ecx, dword [eax + 4]
cmp ecx, esi
je 0x10039e5d
cmp dword [eax], esi
je 0x10039e5d
mov eax, dword [eax]
cmp dword [eax + 0x14], esi
je 0x10039e5d
cmp dword [eax + 0x10], esi
je 0x10039e5d
cmp dword [ecx], esi
je 0x10039e5d
cmp dword [ecx + 4], esi
je 0x10039e5d
mov eax, dword [ebp]
cmp eax, esi
je 0x10039e5d
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Final_DIGEST
add esp, 0xc
test eax, eax
je 0x10039b73
pop esi
mov eax, 0x22050018
pop ebp
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.10087a66
add esp, 0x2a4
ret
mov eax, dword [esp + 0x2b8]
push edi
mov edi, dword [esp + 0xc]
cmp dword [eax], edi
je 0x10039ba0
pop edi
pop esi
mov eax, 0x2205000c
pop ebp
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.10087a66
add esp, 0x2a4
ret
mov ecx, dword [ebp + 0x18]
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Start_BIGINT_Pool
add esp, 4
test eax, eax
je 0x10039bcd
pop edi
pop esi
mov eax, 0x22050057
pop ebp
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.10087a66
add esp, 0x2a4
ret
mov edx, dword [ebp + 0x18]
push ebx
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
mov ebx, eax
add esp, 4
cmp ebx, esi
je 0x10039e0f
mov eax, dword [ebp + 0x18]
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
je 0x10039e0f
mov ecx, dword [ebp + 0x18]
push ecx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x10039e0f
mov edx, dword [ebp + 0x18]
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Get_BIGINT_Pool
add esp, 4
mov dword [esp + 0x2c], eax
test eax, eax
je 0x10039e0f
mov eax, dword [esp + 0x2c4]
mov ecx, dword [eax]
mov edx, dword [esp + 0x28]
push ebx
push ecx
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Binary_To_BIGINT
add esp, 0xc
test eax, eax
jne 0x10039c54
mov esi, 0x22050005
jmp 0x10039e14
cmp dword [ebx + 4], 0
jne 0x10039c64
mov esi, 0x22050037
jmp 0x10039e14
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x14]
push edx
push ebx
call sym.inicrypto_v5.4.1.dll_ISC_Cmp_BIGINT
add esp, 8
test eax, eax
jl 0x10039c85
mov esi, 0x2205000b
jmp 0x10039e14
xor ecx, ecx
test edi, edi
jle 0x10039ca7
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x30]
sub esi, eax
lea eax, [esp + ecx + 0x30]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, edi
jl 0x10039c95
mov esi, dword [esp + 0x10]
push esi
lea eax, [esp + 0x34]
push edi
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Binary_To_BIGINT
add esp, 0xc
test eax, eax
jne 0x10039cc4
mov esi, 0x22050005
jmp 0x10039e14
call sym.inicrypto_v5.4.1.dll_ISC_New_ECPOINT
mov dword [esp + 0x14], eax
test eax, eax
je 0x10039e0f
call sym.inicrypto_v5.4.1.dll_ISC_New_ECPOINT
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10039e0f
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx + 4]
mov esi, dword [esp + 0x14]
mov eax, ecx
mov edi, dword [eax]
push edx
call fcn.10071f40
add esp, 4
test eax, eax
je 0x10039d0c
mov esi, 0x22050074
jmp 0x10039e14
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov edi, dword [ecx]
mov esi, dword [esp + 0x1c]
call fcn.10071dd0
test eax, eax
je 0x10039d2d
mov esi, 0x2205006e
jmp 0x10039e14
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov edi, dword [edx]
push esi
call fcn.10072000
add esp, 4
test eax, eax
je 0x10039d52
mov esi, 0x22050075
jmp 0x10039e14
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx]
lea eax, [esp + 0xb0]
push eax
push edx
call sym.inicrypto_v5.4.1.dll_ISC_BIGINT_To_Binary_Unsigned
mov esi, eax
mov eax, dword [ebp]
mov ecx, dword [eax]
push ecx
push eax
mov dword [esp + 0x20], esi
call sym.inicrypto_v5.4.1.dll_ISC_Init_DIGEST
add esp, 0x10
test eax, eax
je 0x10039d89
mov esi, 0x22050022
jmp 0x10039e14
mov eax, dword [ebp]
push esi
lea edx, [esp + 0xb4]
push edx
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Update_DIGEST
add esp, 0xc
test eax, eax
je 0x10039da9
mov esi, 0x2205005b
jmp 0x10039e14
mov eax, dword [ebp]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Final_DIGEST
add esp, 0xc
test eax, eax
je 0x10039dca
mov esi, 0x22050018
jmp 0x10039e14
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
push esi
push ecx
lea edx, [esp + 0x38]
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Binary_To_BIGINT
mov eax, dword [esp + 0x2cc]
mov edi, dword [esp + 0x30]
mov ecx, dword [eax]
mov edx, dword [esp + 0x2c]
push edi
push ecx
push edx
call sym.inicrypto_v5.4.1.dll_ISC_Binary_To_BIGINT
push edi
push esi
call sym.inicrypto_v5.4.1.dll_ISC_Cmp_BIGINT
add esp, 0x20
mov esi, eax
neg esi
sbb esi, esi
and esi, 0x2205005e
jmp 0x10039e14
mov esi, 0x2205001b
mov eax, dword [ebp + 0x18]
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Finish_BIGINT_Pool
mov eax, dword [esp + 0x18]
add esp, 4
pop ebx
test eax, eax
je 0x10039e32
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Free_ECPOINT
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x10039e43
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Free_ECPOINT
add esp, 4
pop edi
mov eax, esi
pop esi
pop ebp
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.10087a66
add esp, 0x2a4
ret
mov ecx, dword [esp + 0x2a8]
pop esi
pop ebp
xor ecx, esp
mov eax, 0x22050049
call fcn.10087a66
add esp, 0x2a4
ret