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

Disassembly:
mov ecx, dword [esp + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 0x74]
test edx, edx
jne 0x1003a196
mov dword [esp + 4], ecx
jmp 0x1003e730
mov eax, dword [eax + 0x78]
test eax, eax
je 0x1003a1a3
mov dword [esp + 4], ecx
jmp eax
mov eax, 1
ret
mov eax, 0x28
call fcn.100a1060
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x3c]
push 0x1003da70
push fcn.1003da10
xor esi, esi
lea eax, [edi + 0x44]
push 0x1003d9f0
xor ebx, ebx
push eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
call fcn.10039600
add esp, 0x10
call fcn.1003d980
mov ebp, eax
cmp ebp, esi
jne 0x1003e78e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x28
ret
push edi
call sym.LIBEAY32.dll_ASN1_STRING_type
add esp, 4
cmp eax, esi
mov dword [esp + 0x20], eax
jne 0x1003e7b0
push 0x30f
push str..cryptoecec_mult.c
push 0x71
jmp 0x1003eadd
cmp dword [esp + 0x40], esi
jne 0x1003e7cb
call sym.LIBEAY32.dll_BN_CTX_new
cmp eax, esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
je 0x1003eb14
mov ebx, dword [esp + 0x40]
push ebx
call sym.LIBEAY32.dll_BN_CTX_start
push ebx
call sym.LIBEAY32.dll_BN_CTX_get
mov esi, eax
add esp, 8
test esi, esi
je 0x1003eaec
push ebx
push esi
push edi
call sym.LIBEAY32.dll_EC_GROUP_get_order
add esp, 0xc
test eax, eax
je 0x1003eaec
mov eax, dword [esi + 4]
test eax, eax
jne 0x1003e813
push 0x321
push str..cryptoecec_mult.c
push 0x72
jmp 0x1003eadd
push esi
call sym.LIBEAY32.dll_BN_num_bits
add esp, 4
cmp eax, 0x7d0
mov edx, 4
mov dword [esp + 0x3c], edx
jae 0x1003e85c
cmp eax, 0x320
jae 0x1003e852
cmp eax, 0x12c
jae 0x1003e88e
cmp eax, 0x46
jae 0x1003e88e
cmp eax, 0x14
sbb ecx, ecx
add ecx, 2
cmp ecx, edx
jbe 0x1003e88e
cmp eax, 0x320
jb 0x1003e866
mov dword [esp + 0x3c], 5
jmp 0x1003e88e
mov dword [esp + 0x3c], 6
jmp 0x1003e88e
cmp eax, 0x12c
jb 0x1003e873
mov dword [esp + 0x3c], edx
jmp 0x1003e88e
cmp eax, 0x46
jb 0x1003e882
mov dword [esp + 0x3c], 3
jmp 0x1003e88e
cmp eax, 0x14
sbb ecx, ecx
add ecx, 2
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x3c]
add eax, 7
shr eax, 3
dec ecx
mov esi, 1
shl esi, cl
push 0x33a
mov dword [esp + 0x20], eax
push str..cryptoecec_mult.c
mov dword [esp + 0x30], esi
imul esi, eax
lea eax, [esi*4 + 4]
push eax
mov dword [esp + 0x30], esi
call sym.LIBEAY32.dll_CRYPTO_malloc
add esp, 0xc
test eax, eax
mov dword [esp + 0x10], eax
jne 0x1003e8db
push 0x33d
jmp 0x1003ead6
mov dword [eax + esi*4], 0
mov ebx, eax
mov eax, dword [esp + 0x24]
xor esi, esi
test eax, eax
jbe 0x1003e911
mov edi, edi
push edi
call sym.LIBEAY32.dll_EC_POINT_new
mov ecx, dword [esp + 0x14]
add esp, 4
test eax, eax
mov dword [ecx + esi*4], eax
je 0x1003eaca
mov eax, dword [esp + 0x24]
inc esi
cmp esi, eax
jb 0x1003e8f0
push edi
call sym.LIBEAY32.dll_EC_POINT_new
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
je 0x1003ead1
push edi
call sym.LIBEAY32.dll_EC_POINT_new
add esp, 4
test eax, eax
mov dword [esp + 0x14], eax
je 0x1003ead1
mov edx, dword [esp + 0x20]
push edx
push eax
call sym.LIBEAY32.dll_EC_POINT_copy
add esp, 8
test eax, eax
je 0x1003eaec
mov eax, dword [esp + 0x1c]
test eax, eax
mov dword [esp + 0x20], 0
jbe 0x1003ea57
jmp 0x1003e970
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
push eax
push ecx
push edx
push edi
call sym.LIBEAY32.dll_EC_POINT_dbl
add esp, 0x10
test eax, eax
je 0x1003eaec
mov ecx, dword [esp + 0x14]
mov eax, dword [ebx]
push ecx
push eax
call sym.LIBEAY32.dll_EC_POINT_copy
add esp, 8
add ebx, 4
test eax, eax
je 0x1003eaec
mov eax, dword [esp + 0x28]
mov esi, 1
cmp eax, esi
jbe 0x1003e9ee
jmp 0x1003e9c0
mov edx, dword [esp + 0x40]
mov eax, dword [ebx - 4]
mov ecx, dword [esp + 0x18]
push edx
mov edx, dword [ebx]
push eax
push ecx
push edx
push edi
call sym.LIBEAY32.dll_EC_POINT_add
add esp, 0x14
test eax, eax
je 0x1003eaec
mov eax, dword [esp + 0x28]
inc esi
add ebx, 4
cmp esi, eax
jb 0x1003e9c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
dec eax
cmp ecx, eax
jae 0x1003ea42
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
push ecx
push edx
push eax
push edi
call sym.LIBEAY32.dll_EC_POINT_dbl
add esp, 0x10
test eax, eax
je 0x1003eaec
mov esi, 2
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
push ecx
push eax
push eax
push edi
call sym.LIBEAY32.dll_EC_POINT_dbl
add esp, 0x10
test eax, eax
je 0x1003eaec
inc esi
cmp esi, 8
jb 0x1003ea20
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jb 0x1003e970
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
push edx
push eax
push esi
push edi
call sym.LIBEAY32.dll_EC_POINTs_make_affine
add esp, 0x10
test eax, eax
je 0x1003eaec
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
push 0x1003da70
push fcn.1003da10
push 0x1003d9f0
mov dword [ebp + 8], ecx
mov ecx, dword [esp + 0x40]
push ebp
push ecx
mov dword [ebp], edi
mov dword [ebp + 4], 8
mov dword [ebp + 0xc], edx
mov dword [ebp + 0x10], eax
mov dword [esp + 0x24], 0
mov dword [ebp + 0x14], esi
call fcn.10039520
add esp, 0x14
test eax, eax
je 0x1003eaec
xor ebp, ebp
mov dword [esp + 0x30], 1
jmp 0x1003eaec
push 0x347
jmp 0x1003ead6
push 0x34e
push str..cryptoecec_mult.c
push 0x41
push 0xbc
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
mov eax, dword [esp + 0x40]
xor esi, esi
cmp eax, esi
je 0x1003eaff
push eax
call sym.LIBEAY32.dll_BN_CTX_end
add esp, 4
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x1003eb10
push eax
call sym.LIBEAY32.dll_BN_CTX_free
add esp, 4
mov ebx, dword [esp + 0x10]
cmp ebp, esi
je 0x1003eb21
push ebp
call fcn.1003da10
add esp, 4
cmp ebx, esi
je 0x1003eb4c
mov eax, dword [ebx]
test eax, eax
mov esi, ebx
je 0x1003eb43
lea ecx, [ecx]
push eax
call sym.LIBEAY32.dll_EC_POINT_free
mov eax, dword [esi + 4]
add esi, 4
add esp, 4
test eax, eax
jne 0x1003eb30
push ebx
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
je 0x1003eb5d
push eax
call sym.LIBEAY32.dll_EC_POINT_free
add esp, 4
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1003eb6e
push eax
call sym.LIBEAY32.dll_EC_POINT_free
add esp, 4
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret