Function at 0x10002610
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xe4
push ebx
push ebp
push esi
push edi
push 0x10
call fcn.10087e65
xor esi, esi
add esp, 4
cmp eax, esi
jne 0x10002630
mov dword [esp + 0x1c], esi
jmp 0x10002643
mov dword [eax + 0xc], 1
mov dword [eax + 4], esi
mov dword [eax + 8], esi
mov dword [eax], esi
mov dword [esp + 0x1c], eax
push 0x14
call fcn.10087e65
push 0x14
mov dword [esp + 0x30], eax
call fcn.10087e65
push 0x14
mov dword [esp + 0x40], eax
call fcn.10087e65
push 0x10
mov ebx, eax
call fcn.10087e65
push 0x10
mov ebp, eax
call fcn.10087e65
add esp, 0x14
mov edi, eax
cmp dword [esp + 0x1c], esi
je 0x10002f23
cmp dword [esp + 0x28], esi
je 0x10002f34
cmp dword [esp + 0x34], esi
je 0x10002f23
test ebx, ebx
je 0x10002f23
test ebp, ebp
je 0x10002f23
test edi, edi
je 0x10002f23
mov eax, dword [esp + 0xf8]
mov eax, dword [eax + 8]
cmp eax, 0x3000300
jg 0x100026da
je 0x100026d6
cmp eax, 0x3000100
je 0x100026e5
cmp eax, 0x3000200
jne 0x10002f23
push 0x18
jmp 0x100026e7
push 0x20
jmp 0x100026e7
cmp eax, 0x4000100
jne 0x10002f23
push 0x10
call fcn.10087e65
mov esi, eax
add esp, 4
test esi, esi
je 0x10002f23
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0xfc]
push ecx
push edx
call sym.inicrypto_v5.4.1.dll_ISC_BIGINT_To_Binary_Unsigned
mov eax, dword [esp + 0x30]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 2]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 3]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 5]
mov dword [esp + 0x54], ecx
movzx ecx, byte [eax + 4]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 6]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 7]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 9]
mov dword [esp + 0x58], ecx
movzx ecx, byte [eax + 8]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xa]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xb]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xd]
mov dword [esp + 0x5c], ecx
movzx ecx, byte [eax + 0xc]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xe]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xf]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0x11]
mov dword [esp + 0x60], ecx
movzx ecx, byte [eax + 0x10]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0x12]
movzx eax, byte [eax + 0x13]
shl ecx, 8
xor ecx, edx
mov edx, dword [esp + 0x108]
shl ecx, 8
xor ecx, eax
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x3c]
push ecx
push edx
call sym.inicrypto_v5.4.1.dll_ISC_BIGINT_To_Binary_Unsigned
mov eax, dword [esp + 0x44]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 2]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 3]
shl ecx, 8
xor ecx, edx
mov dword [esp + 0x70], ecx
movzx ecx, byte [eax + 4]
add esp, 0x10
shl ecx, 8
movzx edx, byte [eax + 5]
xor ecx, edx
movzx edx, byte [eax + 6]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 7]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 9]
mov dword [esp + 0x64], ecx
movzx ecx, byte [eax + 8]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xa]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xb]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xd]
mov dword [esp + 0x68], ecx
movzx ecx, byte [eax + 0xc]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xe]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0xf]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0x11]
mov dword [esp + 0x6c], ecx
movzx ecx, byte [eax + 0x10]
shl ecx, 8
xor ecx, edx
movzx edx, byte [eax + 0x12]
movzx eax, byte [eax + 0x13]
shl ecx, 8
xor ecx, edx
shl ecx, 8
xor ecx, eax
mov eax, dword [esp + 0x60]
xor eax, dword [esp + 0x4c]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x64]
xor eax, dword [esp + 0x50]
lea edx, [esp + 0x38]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x68]
xor eax, dword [esp + 0x54]
mov dword [esp + 0x14], 4
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x6c]
xor eax, dword [esp + 0x58]
xor ecx, dword [esp + 0x5c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
lea ecx, [esp + 0x88]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x20], edx
jmp 0x100028e0
mov eax, dword [esp + 0x14]
cdq
mov ecx, 5
idiv ecx
mov eax, dword [esp + 0x14]
dec eax
add edx, edx
add edx, edx
mov dword [esp + 0x80], edx
mov edx, dword [esp + edx + 0x60]
mov dword [esp + 0x24], edx
cdq
idiv ecx
mov eax, dword [esp + 0x14]
add eax, 0xfffffffe
add edx, edx
add edx, edx
mov dword [esp + 0x10], edx
mov edx, dword [esp + edx + 0x60]
mov dword [esp + 0x2c], edx
cdq
idiv ecx
mov eax, dword [esp + 0x14]
add eax, 0xfffffffd
add edx, edx
add edx, edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + edx + 0x60]
mov dword [esp + 0x30], edx
cdq
idiv ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [esp + ecx + 0x38]
mov dword [esp + 0x7c], ecx
add edx, edx
add edx, edx
mov eax, dword [esp + edx + 0x60]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + edx + 0x38]
mov dword [esp + 0x78], eax
xor eax, ecx
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffc
mov dword [esp + 0x50], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
sub ecx, edx
add ecx, ecx
add ecx, ecx
mov eax, dword [esp + ecx + 0x38]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x74]
mov ecx, dword [esp + ecx + 0x38]
mov edx, ecx
xor edx, eax
mov eax, dword [esp + 0x80]
mov eax, dword [esp + eax + 0x38]
xor eax, ecx
mov ecx, dword [esp + 0x10]
xor eax, dword [esp + ecx + 0x38]
mov ecx, dword [esp + 0x24]
xor edx, dword [esp + 0x7c]
xor eax, dword [esp + 0x78]
shr ecx, 0x18
mov byte [esi], cl
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
mov byte [esi + 1], cl
mov ecx, dword [esp + 0x24]
shr ecx, 8
mov byte [esi + 2], cl
movzx ecx, byte [esp + 0x24]
mov byte [esi + 3], cl
mov ecx, dword [esp + 0x2c]
shr ecx, 0x18
mov byte [esi + 4], cl
mov ecx, dword [esp + 0x2c]
shr ecx, 0x10
mov byte [esi + 5], cl
mov ecx, dword [esp + 0x2c]
shr ecx, 8
mov byte [esi + 6], cl
movzx ecx, byte [esp + 0x2c]
mov byte [esi + 7], cl
mov ecx, dword [esp + 0x30]
shr ecx, 0x18
mov byte [esi + 8], cl
mov ecx, dword [esp + 0x30]
shr ecx, 0x10
mov byte [esi + 9], cl
mov ecx, dword [esp + 0x30]
shr ecx, 8
mov byte [esi + 0xa], cl
movzx ecx, byte [esp + 0x30]
mov byte [esi + 0xb], cl
mov ecx, dword [esp + 0xe0]
shr ecx, 0x18
mov byte [esi + 0xc], cl
mov ecx, dword [esp + 0xe0]
shr ecx, 0x10
mov byte [esi + 0xd], cl
mov ecx, dword [esp + 0xe0]
shr ecx, 8
mov byte [esi + 0xe], cl
movzx ecx, byte [esp + 0xe0]
mov byte [esi + 0xf], cl
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
shr ecx, 0x18
mov byte [ebp], cl
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
shr ecx, 0x10
mov byte [ebp + 1], cl
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
shr ecx, 8
mov byte [ebp + 2], cl
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx]
mov byte [ebp + 3], cl
mov ecx, dword [esp + 0x50]
shr ecx, 0x18
mov byte [ebp + 4], cl
mov ecx, dword [esp + 0x50]
shr ecx, 0x10
mov byte [ebp + 5], cl
mov ecx, dword [esp + 0x50]
shr ecx, 8
mov byte [ebp + 6], cl
movzx ecx, byte [esp + 0x50]
mov byte [ebp + 7], cl
mov ecx, edx
shr ecx, 0x18
mov byte [ebp + 8], cl
mov ecx, edx
shr ecx, 0x10
mov byte [ebp + 9], cl
mov ecx, edx
mov byte [ebp + 0xb], dl
shr ecx, 8
mov byte [ebp + 0xa], cl
mov edx, eax
shr edx, 0x18
mov byte [ebp + 0xc], dl
mov ecx, eax
shr ecx, 0x10
mov edx, eax
mov byte [ebp + 0xd], cl
mov ecx, dword [esp + 0xf8]
shr edx, 8
mov byte [ebp + 0xe], dl
mov byte [ebp + 0xf], al
mov eax, dword [ecx + 8]
cmp eax, 0x3000300
jg 0x10002c6a
je 0x10002bc4
cmp eax, 0x3000100
je 0x10002ba1
cmp eax, 0x3000200
jne 0x10002d26
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax + 0x60]
mov ecx, dword [ecx + 0xc]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x10], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x11], dl
mov edx, eax
shr edx, 8
mov byte [esi + 0x12], dl
mov byte [esi + 0x13], al
mov eax, dword [esp + 0x24]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x14], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x15], dl
mov edx, eax
shr edx, 8
mov byte [esi + 0x16], dl
mov byte [esi + 0x17], al
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x10002f23
push 0x110
push 0
push ecx
call fcn.1008e320
push 0xc0
mov ecx, dword [esp + 0x20]
push esi
call fcn.10008070
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x10c]
mov dword [ecx + 0x220], eax
mov eax, dword [edx + 0xc]
push ebp
call fcn.10008fd0
add esp, 0x18
jmp 0x10002c9c
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x10002f23
push 0x110
push 0
push ecx
call fcn.1008e320
push 0x80
jmp 0x10002b75
mov eax, dword [esp + 0x10]
mov eax, dword [esp + eax + 0x60]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x10], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x11], dl
mov edx, eax
shr edx, 8
mov byte [esi + 0x12], dl
mov byte [esi + 0x13], al
mov eax, dword [esp + 0x24]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x14], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x15], dl
mov edx, eax
shr edx, 8
mov byte [esi + 0x16], dl
mov ecx, dword [ecx + 0xc]
mov byte [esi + 0x17], al
mov eax, dword [esp + 0x2c]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x18], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x19], dl
mov edx, eax
shr edx, 8
mov byte [esi + 0x1a], dl
mov byte [esi + 0x1b], al
mov eax, dword [esp + 0x30]
mov edx, eax
shr edx, 0x18
mov byte [esi + 0x1c], dl
mov edx, eax
shr edx, 0x10
mov byte [esi + 0x1d], dl
mov edx, eax
shr edx, 8
mov byte [esi + 0x1e], dl
mov byte [esi + 0x1f], al
mov dword [esp + 0x10], ecx
test ecx, ecx
je 0x10002f23
push 0x110
push 0
push ecx
call fcn.1008e320
push 0x100
jmp 0x10002b75
cmp eax, 0x4000100
jne 0x10002d26
mov eax, dword [ecx + 0xc]
mov ecx, esi
call fcn.1001dd00
test eax, eax
jne 0x10002f23
mov eax, dword [esp + 0xf8]
mov eax, dword [eax + 0xc]
push edi
mov ecx, ebp
call fcn.1001fdb0
add esp, 4
movzx ecx, byte [edi]
movzx edx, byte [edi + 1]
movzx eax, byte [edi + 2]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 3]
shl ecx, 8
xor ecx, eax
mov eax, dword [esp + 0x18]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 5]
mov dword [eax - 4], ecx
movzx ecx, byte [edi + 4]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 6]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 7]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 9]
mov dword [eax], ecx
movzx ecx, byte [edi + 8]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 0xa]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 0xb]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 0xd]
mov dword [eax + 4], ecx
movzx ecx, byte [edi + 0xc]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 0xe]
shl ecx, 8
xor ecx, edx
movzx edx, byte [edi + 0xf]
shl ecx, 8
xor ecx, edx
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x14]
add dword [esp + 0x20], 4
add dword [esp + 0x18], 0x10
inc eax
mov dword [esp + 0x14], eax
add eax, 0xfffffffc
cmp eax, 5
jl 0x100028e0
mov eax, dword [esp + 0x84]
xor eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x94]
xor eax, ecx
mov edx, dword [esp + 0x98]
xor eax, edx
xor eax, dword [esp + 0xac]
xor eax, dword [esp + 0xcc]
xor eax, dword [esp + 0xc0]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0xa4]
xor eax, dword [esp + 0xa8]
xor eax, dword [esp + 0xbc]
xor eax, dword [esp + 0x8c]
xor eax, dword [esp + 0xd0]
xor eax, ecx
mov ecx, dword [esp + 0xb4]
xor ecx, dword [esp + 0xb8]
xor eax, edx
xor ecx, dword [esp + 0x9c]
mov edx, dword [esp + 0x38]
xor ecx, dword [esp + 0x90]
shr edx, 0x18
xor ecx, dword [esp + 0xa4]
mov byte [ebx], dl
xor ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x38]
xor ecx, dword [esp + 0xcc]
shr edx, 0x10
mov byte [ebx + 1], dl
mov edx, dword [esp + 0x38]
shr edx, 8
mov byte [ebx + 2], dl
mov dl, byte [esp + 0x38]
mov byte [ebx + 3], dl
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0xc4]
xor ecx, dword [esp + 0xc8]
mov edx, eax
xor ecx, dword [esp + 0xa0]
shr edx, 0x18
xor ecx, dword [esp + 0xb4]
mov byte [ebx + 4], dl
xor ecx, dword [esp + 0xb8]
mov edx, eax
xor ecx, dword [esp + 0x8c]
shr edx, 0x10
xor ecx, dword [esp + 0xac]
mov byte [ebx + 5], dl
mov edx, eax
shr edx, 8
mov byte [ebx + 6], dl
mov byte [ebx + 7], al
mov eax, dword [esp + 0x40]
mov edx, eax
shr edx, 0x18
mov byte [ebx + 8], dl
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xb0]
xor ecx, dword [esp + 0xc4]
mov edx, eax
xor ecx, dword [esp + 0xc8]
shr edx, 0x10
xor ecx, dword [esp + 0x9c]
mov byte [ebx + 9], dl
xor ecx, dword [esp + 0xbc]
mov edx, eax
xor ecx, dword [esp + 0x84]
shr edx, 8
xor ecx, dword [esp + 0x88]
mov byte [ebx + 0xa], dl
mov byte [ebx + 0xb], al
mov eax, dword [esp + 0x44]
mov edx, eax
shr edx, 0x18
mov byte [ebx + 0xc], dl
mov edx, eax
shr edx, 0x10
mov byte [ebx + 0xd], dl
mov edx, eax
shr edx, 8
mov byte [ebx + 0xf], al
mov eax, ecx
shr eax, 0x18
mov byte [ebx + 0xe], dl
mov byte [ebx + 0x10], al
mov edx, ecx
mov eax, ecx
mov byte [ebx + 0x13], cl
mov ecx, dword [esp + 0x1c]
push ecx
shr edx, 0x10
shr eax, 8
push 0x14
push ebx
mov byte [ebx + 0x11], dl
mov byte [ebx + 0x12], al
call sym.inicrypto_v5.4.1.dll_ISC_Binary_To_BIGINT
mov edx, dword [esp + 0x34]
push edx
call fcn.10087d88
mov eax, dword [esp + 0x44]
push eax
call fcn.10087d88
push ebx
call fcn.10087d88
push esi
call fcn.10087d88
push ebp
call fcn.10087d88
push edi
call fcn.10087d88
mov eax, dword [esp + 0x40]
add esp, 0x24
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe4
ret
mov eax, dword [esp + 0x28]
test eax, eax
je 0x10002f34
push eax
call fcn.10087d88
add esp, 4
mov eax, dword [esp + 0x34]
test eax, eax
je 0x10002f45
push eax
call fcn.10087d88
add esp, 4
test ebx, ebx
je 0x10002f52
push ebx
call fcn.10087d88
add esp, 4
test esi, esi
je 0x10002f5f
push esi
call fcn.10087d88
add esp, 4
test ebp, ebp
je 0x10002f6c
push ebp
call fcn.10087d88
add esp, 4
test edi, edi
je 0x10002f79
push edi
call fcn.10087d88
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x10002faa
push eax
call sym.inicrypto_v5.4.1.dll_ISC_Clear_BIGINT
mov ecx, dword [esp + 0x20]
add esp, 4
test byte [ecx + 0xc], 1
je 0x10002faa
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
push ecx
mov dword [ecx + 0xc], eax
call fcn.10087d88
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xe4
ret