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

Disassembly:
mov eax, 0x4c
call fcn.100bf140
xor eax, eax
mov dword [esp + 0x40], 0
push ebx
mov ebx, dword [esp + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x58]
mov edx, dword [ebx]
push ebp
push esi
xor esi, esi
mov dword [esp + 0x48], 0
xor ebp, ebp
mov dword [esp + 0x14], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x40], ebp
cmp edx, dword [eax]
je 0x1004aba5
push 0x168
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
push edi
mov edi, dword [esp + 0x68]
test edi, edi
jne 0x1004abc6
cmp dword [esp + 0x6c], esi
jne 0x1004abc6
push eax
push ebx
call sym.LIBEAY32.dll_EC_POINT_set_to_infinity
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
xor ecx, ecx
cmp dword [esp + 0x6c], ecx
jbe 0x1004abe2
mov edi, edi
mov eax, dword [esp + 0x70]
mov eax, dword [eax + ecx*4]
cmp edx, dword [eax]
jne 0x1004ac3a
inc ecx
cmp ecx, dword [esp + 0x6c]
jb 0x1004abd0
cmp dword [esp + 0x78], esi
jne 0x1004abfd
call sym.LIBEAY32.dll_BN_CTX_new
mov dword [esp + 0x50], eax
mov dword [esp + 0x78], eax
test eax, eax
je 0x1004b18d
test edi, edi
je 0x1004ad04
push ebx
call sym.LIBEAY32.dll_ASN1_STRING_type
mov esi, eax
add esp, 4
mov dword [esp + 0x4c], esi
test esi, esi
jne 0x1004ac5f
push 0x180
push str..cryptoecec_mult.c
push 0x71
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
xor ebx, ebx
jmp 0x1004b0e4
push 0x172
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
push 0x1004a990
push fcn.1004aa20
push 0x1004aa00
push dword [ebx + 0x44]
call fcn.10046c90
mov ebp, eax
add esp, 0x10
mov dword [esp + 0x14], ebp
test ebp, ebp
je 0x1004aceb
cmp dword [ebp + 8], 0
je 0x1004aceb
mov ecx, dword [ebp + 0x10]
push dword [esp + 0x78]
push dword [ecx]
push esi
push ebx
call sym.LIBEAY32.dll_EC_POINT_cmp
add esp, 0x10
test eax, eax
jne 0x1004aceb
mov ebx, dword [ebp + 4]
push edi
mov dword [esp + 0x1c], ebx
call sym.LIBEAY32.dll_BN_num_bits
xor edx, edx
mov ecx, dword [ebp + 0xc]
div ebx
mov edx, dword [ebp + 8]
add esp, 4
lea esi, [eax + 1]
mov eax, 1
cmp esi, edx
cmova esi, edx
dec ecx
shl eax, cl
imul edx, eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x48], eax
cmp dword [ebp + 0x14], edx
je 0x1004ad02
push 0x19f
push str..cryptoecec_mult.c
push 0x44
jmp 0x1004ac24
mov esi, 1
xor eax, eax
mov ebp, esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0x44], ebp
jmp 0x1004ad04
xor ebp, ebp
mov eax, dword [esp + 0x6c]
add eax, esi
push 0x1ad
push str..cryptoecec_mult.c
mov dword [esp + 0x30], eax
lea esi, [eax*4]
push esi
call sym.LIBEAY32.dll_CRYPTO_malloc
push 0x1ae
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x44], eax
call sym.LIBEAY32.dll_CRYPTO_malloc
push 0x1af
lea ecx, [esi + 4]
mov dword [esp + 0x3c], eax
push str..cryptoecec_mult.c
push ecx
call sym.LIBEAY32.dll_CRYPTO_malloc
push 0x1b1
mov ebx, eax
push str..cryptoecec_mult.c
push esi
mov dword [esp + 0x40], ebx
call sym.LIBEAY32.dll_CRYPTO_malloc
add esp, 0x30
mov dword [esp + 0x1c], eax
test ebx, ebx
je 0x1004ad77
mov dword [ebx], 0
mov esi, dword [esp + 0x2c]
test esi, esi
je 0x1004b4dd
mov edx, dword [esp + 0x20]
test edx, edx
je 0x1004b4dd
test ebx, ebx
je 0x1004b4dd
test eax, eax
je 0x1004b4dd
mov ecx, dword [esp + 0x6c]
xor ebx, ebx
mov dword [esp + 0x38], 0
lea eax, [ecx + ebp]
mov dword [esp + 0x34], eax
test eax, eax
je 0x1004aea2
mov eax, dword [esp + 0x10]
mov edi, esi
mov ebp, dword [esp + 0x74]
sub eax, esi
mov dword [esp + 0x40], eax
sub ebp, esi
mov eax, edx
sub eax, esi
mov dword [esp + 0x58], eax
cmp ebx, ecx
jae 0x1004ade8
push dword [edi + ebp]
call sym.LIBEAY32.dll_BN_num_bits
mov esi, dword [esp + 0x6c]
jmp 0x1004adf2
mov esi, dword [esp + 0x68]
push esi
call sym.LIBEAY32.dll_BN_num_bits
add esp, 4
cmp eax, 0x7d0
jb 0x1004ae03
mov ecx, 6
jmp 0x1004ae33
cmp eax, 0x320
jb 0x1004ae11
mov ecx, 5
jmp 0x1004ae33
cmp eax, 0x12c
jb 0x1004ae1f
mov ecx, 4
jmp 0x1004ae33
cmp eax, 0x46
jb 0x1004ae2b
mov ecx, 3
jmp 0x1004ae33
cmp eax, 0x14
sbb ecx, ecx
add ecx, 2
mov dword [edi], ecx
mov eax, 1
dec ecx
shl eax, cl
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [eax + edi + 4], 0
cmp ebx, dword [esp + 0x6c]
jae 0x1004ae58
mov eax, dword [edi + ebp]
jmp 0x1004ae5a
mov eax, esi
mov esi, dword [esp + 0x58]
add esi, edi
push esi
push dword [edi]
push eax
call fcn.1004a7b0
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov dword [ecx + edi], eax
test eax, eax
je 0x1004b0e0
mov ecx, dword [esp + 0x24]
cmp dword [esi], ecx
cmova ecx, dword [esi]
inc ebx
add edi, 4
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x6c]
cmp ebx, dword [esp + 0x34]
jb 0x1004add6
mov edi, dword [esp + 0x68]
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
test esi, esi
je 0x1004b06d
mov ebx, dword [esp + 0x14]
test ebx, ebx
jne 0x1004aedf
cmp ebp, 1
je 0x1004b06d
push 0x1d6
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x1004b0e0
mov dword [esp + 0x44], 0
test ebp, ebp
je 0x1004aef2
push 0x1df
jmp 0x1004aec4
mov edx, dword [esp + 0x2c]
mov eax, dword [ebx + 0xc]
mov dword [edx + ecx*4], eax
lea ecx, [esp + 0x44]
push ecx
push eax
push edi
call fcn.1004a7b0
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x1004b0e0
mov edi, dword [esp + 0x44]
cmp edi, dword [esp + 0x24]
ja 0x1004af53
mov esi, dword [esp + 0x6c]
lea eax, [esi + 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x10]
mov dword [eax + esi*4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [eax + esi*4 + 4], 0
mov eax, dword [esp + 0x20]
mov dword [eax + esi*4], edi
mov eax, dword [ebx + 0x10]
mov dword [ecx + esi*4], eax
jmp 0x1004b06d
mov ebp, dword [esp + 0x18]
imul esi, ebp
cmp edi, esi
jae 0x1004af82
lea eax, [ebp - 1]
xor edx, edx
add eax, edi
div ebp
cmp eax, dword [ebx + 8]
jbe 0x1004af76
push 0x20c
jmp 0x1004aec4
mov esi, dword [esp + 0x6c]
add eax, esi
mov dword [esp + 0x28], eax
jmp 0x1004af8a
mov esi, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
mov ebp, dword [ebx + 0x10]
mov ebx, esi
mov dword [esp + 0x30], ecx
cmp esi, eax
jae 0x1004b064
mov ecx, dword [esp + 0x10]
lea edx, [eax - 1]
mov eax, dword [esp + 0x20]
sub ecx, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
lea esi, [eax + esi*4]
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x18]
cmp ebx, edx
jae 0x1004afd5
mov dword [esi], eax
cmp edi, eax
jb 0x1004b056
sub edi, eax
jmp 0x1004afd7
mov dword [esi], edi
push 0x226
mov dword [ecx + esi + 4], 0
push str..cryptoecec_mult.c
push dword [esi]
call sym.LIBEAY32.dll_CRYPTO_malloc
mov ecx, dword [esp + 0x50]
add esp, 0xc
mov dword [ecx + esi], eax
test eax, eax
je 0x1004b199
push dword [esi]
push dword [esp + 0x34]
push eax
call sub.MSVCR120.dll_memcpy
mov ecx, dword [esp + 0x30]
add esp, 0xc
cmp dword [esi], ecx
cmova ecx, dword [esi]
cmp dword [ebp], 0
mov dword [esp + 0x24], ecx
je 0x1004b0bc
mov eax, dword [esp + 0x58]
inc ebx
mov dword [eax + esi], ebp
add esi, 4
mov eax, dword [esp + 0x48]
lea ebp, [ebp + eax*4]
mov eax, dword [esp + 0x18]
add dword [esp + 0x30], eax
cmp ebx, dword [esp + 0x28]
jae 0x1004b060
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
jmp 0x1004afc3
push 0x21a
jmp 0x1004aec4
mov ecx, dword [esp + 0x14]
push ecx
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov ebx, dword [esp + 0x38]
push 0x243
push str..cryptoecec_mult.c
lea eax, [ebx*4 + 4]
push eax
call sym.LIBEAY32.dll_CRYPTO_malloc
mov edi, eax
add esp, 0xc
mov dword [esp + 0x14], edi
test edi, edi
jne 0x1004b1aa
push 0x245
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
mov ebx, dword [esp + 0x24]
add esp, 0x14
xor esi, esi
jmp 0x1004b0e8
push 0x231
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
push dword [esp + 0x28]
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 0x18
mov ebx, dword [esp + 0x10]
xor esi, esi
xor edi, edi
mov eax, dword [esp + 0x50]
test eax, eax
je 0x1004b0f9
push eax
call sym.LIBEAY32.dll_BN_CTX_free
add esp, 4
test esi, esi
je 0x1004b106
push esi
call sym.LIBEAY32.dll_EC_POINT_free
add esp, 4
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x1004b117
push eax
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov eax, dword [esp + 0x20]
test eax, eax
je 0x1004b128
push eax
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
test ebx, ebx
je 0x1004b150
mov eax, dword [ebx]
mov esi, ebx
test eax, eax
je 0x1004b147
push eax
call sym.LIBEAY32.dll_CRYPTO_free
mov eax, dword [esi + 4]
lea esi, [esi + 4]
add esp, 4
test eax, eax
jne 0x1004b134
push ebx
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
test edi, edi
je 0x1004b17c
mov eax, dword [edi]
mov esi, edi
test eax, eax
je 0x1004b173
lea esp, [esp]
push eax
call sym.LIBEAY32.dll_EC_POINT_clear_free
mov eax, dword [esi + 4]
lea esi, [esi + 4]
add esp, 4
test eax, eax
jne 0x1004b160
push edi
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x1004b18d
push eax
call sym.LIBEAY32.dll_CRYPTO_free
add esp, 4
mov eax, dword [esp + 0x54]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret
push 0x228
push str..cryptoecec_mult.c
push 0x41
jmp 0x1004b0c8
lea eax, [edi + ebx*4]
mov esi, edi
xor ebp, ebp
mov dword [eax], 0
mov edi, dword [esp + 0x34]
mov dword [esp + 0x48], eax
test edi, edi
je 0x1004b220
mov eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
sub eax, ebx
mov dword [esp + 0x58], eax
mov dword [eax + ebx], esi
xor edi, edi
mov ecx, dword [ebx]
mov eax, 1
dec ecx
shl eax, cl
test eax, eax
je 0x1004b20c
push dword [esp + 0x60]
call sym.LIBEAY32.dll_EC_POINT_new
add esp, 4
mov dword [esi], eax
test eax, eax
je 0x1004b50a
mov ecx, dword [ebx]
mov eax, 1
dec ecx
inc edi
shl eax, cl
add esi, 4
cmp edi, eax
jb 0x1004b1e4
mov edi, dword [esp + 0x34]
inc ebp
mov eax, dword [esp + 0x58]
add ebx, 4
cmp ebp, edi
jb 0x1004b1d1
mov eax, dword [esp + 0x48]
cmp esi, eax
je 0x1004b24e
push 0x256
push str..cryptoecec_mult.c
push 0x44
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
mov ebx, dword [esp + 0x24]
add esp, 0x14
mov edi, dword [esp + 0x14]
xor esi, esi
jmp 0x1004b0e8
mov ebp, dword [esp + 0x60]
push ebp
call sym.LIBEAY32.dll_EC_POINT_new
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
je 0x1004b519
xor ebx, ebx
test edi, edi
je 0x1004b33c
mov ecx, dword [esp + 0x1c]
mov edi, ecx
mov eax, dword [esp + 0x70]
mov esi, dword [esp + 0x2c]
sub eax, ecx
sub esi, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x30], esi
jmp 0x1004b290
cmp ebx, dword [esp + 0x6c]
jae 0x1004b29b
push dword [eax + edi]
jmp 0x1004b29f
push dword [esp + 0x4c]
mov eax, dword [edi]
push dword [eax]
call sym.LIBEAY32.dll_EC_POINT_copy
add esp, 8
test eax, eax
je 0x1004b4cc
cmp dword [esi + edi], 1
jbe 0x1004b32a
mov eax, dword [edi]
push dword [esp + 0x78]
mov esi, dword [esp + 0x1c]
push dword [eax]
push esi
push ebp
call sym.LIBEAY32.dll_EC_POINT_dbl
add esp, 0x10
test eax, eax
je 0x1004b4fd
mov ecx, dword [esp + 0x30]
mov esi, 1
mov eax, esi
mov ecx, dword [ecx + edi]
dec ecx
shl eax, cl
cmp eax, esi
jbe 0x1004b326
lea esp, [esp]
push dword [esp + 0x78]
mov eax, dword [edi]
push dword [esp + 0x1c]
push dword [eax + esi*4 - 4]
push dword [eax + esi*4]
push ebp
call sym.LIBEAY32.dll_EC_POINT_add
add esp, 0x14
test eax, eax
je 0x1004b4cc
mov eax, dword [esp + 0x30]
inc esi
mov ecx, dword [eax + edi]
mov eax, 1
dec ecx
shl eax, cl
cmp esi, eax
jb 0x1004b2f0
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x70]
inc ebx
add edi, 4
cmp ebx, dword [esp + 0x34]
jb 0x1004b290
mov edi, dword [esp + 0x78]
mov eax, dword [esp + 0x14]
push edi
push eax
push dword [esp + 0x40]
push ebp
call sym.LIBEAY32.dll_EC_POINTs_make_affine
add esp, 0x10
test eax, eax
je 0x1004b4cc
mov ecx, dword [esp + 0x24]
mov ebx, 1
dec ecx
mov dword [esp + 0x38], ecx
js 0x1004b4b3
jmp 0x1004b375
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
test ebx, ebx
jne 0x1004b395
push edi
push esi
push esi
push ebp
call sym.LIBEAY32.dll_EC_POINT_dbl
add esp, 0x10
test eax, eax
je 0x1004b4cc
mov ecx, dword [esp + 0x38]
xor ebp, ebp
cmp dword [esp + 0x28], ebp
jbe 0x1004b48a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x10]
sub edx, eax
mov edi, dword [esp + 0x1c]
sub eax, edi
mov dword [esp + 0x4c], edx
mov dword [esp + 0x58], eax
lea esp, [esp]
add eax, edi
cmp dword [eax + edx], ecx
jbe 0x1004b474
mov eax, dword [eax]
movsx esi, byte [eax + ecx]
test esi, esi
je 0x1004b470
xor eax, eax
test esi, esi
sets al
test eax, eax
je 0x1004b3e6
neg esi
mov ecx, dword [esp + 0x3c]
cmp eax, ecx
je 0x1004b41d
test ebx, ebx
jne 0x1004b412
push dword [esp + 0x78]
push dword [esp + 0x68]
push dword [esp + 0x68]
call sym.LIBEAY32.dll_EC_POINT_invert
add esp, 0xc
test eax, eax
je 0x1004b4cc
mov ecx, dword [esp + 0x3c]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp + 0x3c], eax
mov eax, dword [edi]
sar esi, 1
test ebx, ebx
je 0x1004b449
push dword [eax + esi*4]
mov esi, dword [esp + 0x68]
push esi
call sym.LIBEAY32.dll_EC_POINT_copy
add esp, 8
test eax, eax
je 0x1004b4cc
mov ecx, dword [esp + 0x38]
xor ebx, ebx
mov edx, dword [esp + 0x4c]
jmp 0x1004b474
push dword [esp + 0x78]
push dword [eax + esi*4]
mov esi, dword [esp + 0x6c]
push esi
push esi
push dword [esp + 0x70]
call sym.LIBEAY32.dll_EC_POINT_add
add esp, 0x14
test eax, eax
je 0x1004b4cc
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
jmp 0x1004b474
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x58]
inc ebp
add edi, 4
cmp ebp, dword [esp + 0x28]
jb 0x1004b3c0
mov edi, dword [esp + 0x78]
dec ecx
mov dword [esp + 0x38], ecx
jns 0x1004b371
test ebx, ebx
jne 0x1004b4af
cmp dword [esp + 0x3c], ebx
je 0x1004b4c4
push edi
push esi
push dword [esp + 0x68]
call sym.LIBEAY32.dll_EC_POINT_invert
add esp, 0xc
jmp 0x1004b4c0
mov ebp, dword [esp + 0x60]
push dword [esp + 0x64]
push ebp
call sym.LIBEAY32.dll_EC_POINT_set_to_infinity
add esp, 8
test eax, eax
je 0x1004b4cc
mov dword [esp + 0x54], 1
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
jmp 0x1004b0e8
push 0x1b8
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call sym.LIBEAY32.dll_ERR_put_error
add esp, 0x14
jmp 0x1004b0e4
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
jmp 0x1004b0e8
mov edi, dword [esp + 0x14]
xor esi, esi
mov ebx, dword [esp + 0x10]
jmp 0x1004b0e8
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
jmp 0x1004b0e8