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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
mov ecx, dword [eax]
mov edx, dword [esp + 0x74]
xor ebp, ebp
cmp ecx, dword [edx]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
je 0x4b3f20
sub esp, 0xc
push 0x174
push str..cryptoecec_mult.c
push 0x65
push 0xbb
push 0x10
call sym._ERR_put_error
xor eax, eax
add esp, 0x20
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
test edi, edi
je 0x4b4295
xor edx, edx
cmp edx, dword [esp + 0x7c]
jae 0x4b3f49
mov ebx, dword [esp + 0x80]
mov eax, dword [ebx + edx*4]
cmp ecx, dword [eax]
jne 0x4b4469
inc edx
cmp edx, dword [esp + 0x7c]
jb 0x4b3f30
mov edx, dword [esp + 0x88]
test edx, edx
je 0x4b44b7
test edi, edi
je 0x4b3fba
sub esp, 0xc
mov ebp, dword [esp + 0x7c]
push ebp
call sym._EC_GROUP_get0_generator
mov dword [esp + 0x60], eax
add esp, 0x10
test eax, eax
je 0x4b44d8
push sym._ec_pre_comp_clear_free
push sym._ec_pre_comp_free
push sym._ec_pre_comp_dup
mov esi, dword [esp + 0x7c]
mov ecx, dword [esi + 0x44]
push ecx
call sym._EC_EX_DATA_get_data
add esp, 0x10
test eax, eax
mov ebp, eax
je 0x4b3fa8
mov eax, dword [eax + 8]
test eax, eax
jne 0x4b42bb
xor ebp, ebp
mov dword [esp + 0x40], 1
mov dword [esp + 0x18], 1
mov ebx, dword [esp + 0x7c]
add ebx, dword [esp + 0x40]
mov dword [esp + 0x48], ebx
push esi
push 0x1ba
mov esi, ebx
shl esi, 2
push str..cryptoecec_mult.c
push esi
call sym._CRYPTO_malloc
mov dword [esp + 0x44], eax
add esp, 0xc
push 0x1bb
push str..cryptoecec_mult.c
push esi
call sym._CRYPTO_malloc
mov dword [esp + 0x3c], eax
add esp, 0xc
push 0x1bc
push str..cryptoecec_mult.c
lea eax, [esi + 4]
push eax
call sym._CRYPTO_malloc
mov dword [esp + 0x40], eax
add esp, 0xc
push 0x1bd
push str..cryptoecec_mult.c
push esi
call sym._CRYPTO_malloc
mov dword [esp + 0x2c], eax
add esp, 0x10
mov edx, dword [esp + 0x34]
test edx, edx
je 0x4b4483
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4b4483
mov edx, dword [esp + 0x30]
test edx, edx
je 0x4b4483
test eax, eax
je 0x4b4483
mov esi, dword [esp + 0x7c]
add esi, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
xor ebx, ebx
cmp esi, 0
mov dword [eax], 0
mov dword [esp + 0x24], 0
mov dword [esp + 8], esi
jbe 0x4b4150
mov esi, dword [esp + 0x2c]
lea esi, [esi]
lea edi, [edi]
cmp ebx, dword [esp + 0x7c]
jae 0x4b4460
sub esp, 0xc
mov edx, dword [esp + 0x90]
mov ecx, dword [edx + ebx*4]
push ecx
call sym._BN_num_bits
add esp, 0x10
cmp eax, 0x7cf
mov edx, 6
ja 0x4b40e0
cmp eax, 0x31f
mov dl, 5
ja 0x4b40e0
cmp eax, 0x12b
mov dl, 4
ja 0x4b40e0
cmp eax, 0x45
mov dl, 3
jbe 0x4b4476
lea esi, [esi]
mov eax, dword [esp + 0x34]
mov dword [eax + ebx*4], edx
lea ecx, [edx - 1]
mov eax, 1
shl eax, cl
add dword [esp + 0x24], eax
mov ecx, dword [esp + 0x30]
sub esp, 0xc
cmp ebx, dword [esp + 0x88]
mov dword [ecx + ebx*4 + 4], 0
mov eax, edi
jae 0x4b4119
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx + ebx*4]
push esi
call sym._compute_wNAF
mov edx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [edx + ebx*4], eax
je 0x4b434f
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + ebx*4]
cmp eax, dword [esp + 0x28]
jbe 0x4b4142
mov dword [esp + 0x28], eax
inc ebx
add esi, 4
cmp dword [esp + 8], ebx
ja 0x4b4090
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x4b41f2
test ebp, ebp
je 0x4b45f9
mov esi, dword [esp + 0x18]
test esi, esi
mov dword [esp + 0x58], 0
jne 0x4b45ec
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x34]
sub esp, 0xc
mov edx, dword [ebp + 0xc]
lea eax, [esp + 0x64]
mov dword [ecx + ebx*4], edx
push eax
mov eax, edi
call sym._compute_wNAF
mov dword [esp + 0x20], eax
add esp, 0x10
test eax, eax
je 0x4b434f
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x28]
ja 0x4b44ec
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x2c]
mov dword [edi + edx*4], eax
inc ebx
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x48], ebx
cmp eax, dword [esp + 0x28]
mov ebx, dword [esp + 0x10]
mov dword [esi + edx*4], ebx
mov dword [esi + edx*4 + 4], 0
jbe 0x4b41e3
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x1c]
mov dword [ebp + ecx*4], eax
push eax
push 0x24e
push str..cryptoecec_mult.c
mov edi, dword [esp + 0x30]
lea ebp, [edi*4 + 4]
push ebp
call sym._CRYPTO_malloc
mov dword [esp + 0x30], eax
add esp, 0x10
test eax, eax
je 0x4b48d7
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
xor edi, edi
mov dword [esi + ecx*4], 0
mov ebx, esi
cmp dword [esp + 8], 0
jbe 0x4b4497
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + edi*4]
dec ecx
mov edx, 1
shl edx, cl
mov ebp, dword [esp + 0x1c]
xor esi, esi
cmp edx, 0
mov dword [ebp + edi*4], ebx
jbe 0x4b428e
mov ebp, 1
mov esi, esi
sub esp, 0xc
mov edx, dword [esp + 0x7c]
push edx
call sym._EC_POINT_new
add esp, 0x10
test eax, eax
mov dword [ebx], eax
je 0x4b434f
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + edi*4]
dec ecx
mov eax, ebp
inc esi
shl eax, cl
add ebx, 4
cmp eax, esi
ja 0x4b4260
inc edi
cmp dword [esp + 8], edi
jmp 0x4b4235
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x4b3f28
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov ecx, dword [esp + 0x7c]
push ecx
call sym._EC_POINT_set_to_infinity
add esp, 0x10
jmp 0x4b3f13
mov eax, dword [esp + 0x88]
push eax
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi]
push ecx
mov edx, dword [esp + 0x58]
push edx
mov ebx, dword [esp + 0x7c]
push ebx
call sym._EC_POINT_cmp
add esp, 0x10
test eax, eax
jne 0x4b3fa8
mov ebx, dword [ebp + 4]
mov dword [esp + 0x44], ebx
sub esp, 0xc
push edi
call sym._BN_num_bits
xor edx, edx
div dword [esp + 0x54]
inc eax
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 8]
add esp, 0x10
cmp eax, dword [esp + 0x40]
jae 0x4b430e
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + 0xc]
dec ecx
mov dword [esp + 0x3c], 1
shl dword [esp + 0x3c], cl
imul eax, dword [esp + 0x3c]
cmp dword [ebp + 0x14], eax
je 0x4b3fba
sub esp, 0xc
push 0x1ab
push str..cryptoecec_mult.c
push 0x44
nop
lea esi, [esi]
push 0xbb
push 0x10
call sym._ERR_put_error
add esp, 0x20
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4b4367
sub esp, 0xc
mov esi, dword [esp + 0x60]
push esi
call sym._BN_CTX_free
add esp, 0x10
mov ebp, dword [esp + 0x4c]
test ebp, ebp
je 0x4b437f
sub esp, 0xc
mov ebx, dword [esp + 0x58]
push ebx
call sym._EC_POINT_free
add esp, 0x10
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4b4397
sub esp, 0xc
mov ecx, dword [esp + 0x40]
push ecx
call sym._CRYPTO_free
add esp, 0x10
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x4b43af
sub esp, 0xc
mov edi, dword [esp + 0x38]
push edi
call sym._CRYPTO_free
add esp, 0x10
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4b43f7
mov ebx, dword [esp + 0x30]
mov ebp, dword [ebx]
test ebp, ebp
je 0x4b43e7
jmp 0x4b43d0
sub esp, 0xc
mov eax, dword [ebx]
push eax
call sym._CRYPTO_free
add ebx, 4
add esp, 0x10
mov ebp, dword [ebx]
test ebp, ebp
jne 0x4b43d0
sub esp, 0xc
mov ebx, dword [esp + 0x3c]
push ebx
call sym._CRYPTO_free
add esp, 0x10
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4b4437
mov ebx, dword [esp + 0x20]
mov edx, dword [ebx]
test edx, edx
je 0x4b4427
lea esi, [esi]
sub esp, 0xc
mov edi, dword [ebx]
push edi
call sym._EC_POINT_clear_free
add ebx, 4
add esp, 0x10
mov edx, dword [ebx]
test edx, edx
jne 0x4b4410
sub esp, 0xc
mov esi, dword [esp + 0x2c]
push esi
call sym._CRYPTO_free
add esp, 0x10
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x4b444f
sub esp, 0xc
mov eax, dword [esp + 0x28]
push eax
call sym._CRYPTO_free
add esp, 0x10
mov eax, dword [esp + 0x14]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
sub esp, 0xc
push edi
jmp 0x4b40a8
sub esp, 0xc
push 0x181
jmp 0x4b3efb
cmp eax, 0x14
sbb eax, eax
lea edx, [eax + 2]
jmp 0x4b40e0
sub esp, 0xc
push 0x1c1
push str..cryptoecec_mult.c
push 0x41
jmp 0x4b4340
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
lea edi, [esi + ebp*4]
cmp edi, ebx
je 0x4b4611
sub esp, 0xc
push 0x264
jmp 0x4b4334
call sym._BN_CTX_new
test eax, eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x88], eax
jne 0x4b3f58
mov eax, dword [esp + 0x14]
jmp 0x4b4453
sub esp, 0xc
push 0x192
push str..cryptoecec_mult.c
push 0x71
jmp 0x4b4340
mov edi, dword [esp + 0x40]
imul edi, dword [esp + 0x44]
cmp edi, eax
jbe 0x4b4516
mov esi, dword [esp + 0x44]
xor edx, edx
lea eax, [eax + esi - 1]
div esi
cmp dword [ebp + 8], eax
jb 0x4b494e
add eax, dword [esp + 0x7c]
mov dword [esp + 0x48], eax
mov edx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x48]
cmp ebx, edx
mov edi, dword [ebp + 0x10]
jae 0x4b4716
mov ecx, dword [esp + 0x2c]
lea ebp, [edx - 1]
lea esi, [ecx + ebx*4]
jmp 0x4b45d9
mov eax, dword [esp + 0x44]
mov dword [esi], eax
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x44]
jb 0x4b495b
sub eax, dword [esp + 0x44]
mov dword [esp + 0x58], eax
mov edx, dword [esp + 0x30]
mov dword [edx + ebx*4 + 4], 0
push eax
push 0x231
push str..cryptoecec_mult.c
mov eax, dword [esi]
push eax
call sym._CRYPTO_malloc
mov ecx, dword [esp + 0x40]
add esp, 0x10
test eax, eax
mov dword [ecx + ebx*4], eax
je 0x4b48e4
push edx
mov edx, dword [esi]
push edx
mov ecx, dword [esp + 0x14]
push ecx
push eax
call sym._memcpy
mov eax, dword [esi]
add esp, 0x10
cmp eax, dword [esp + 0x28]
jbe 0x4b45ab
mov dword [esp + 0x28], eax
mov eax, dword [edi]
test eax, eax
je 0x4b4914
mov eax, dword [esp + 0x1c]
mov dword [eax + ebx*4], edi
mov ecx, dword [esp + 0x44]
inc ebx
mov edx, dword [esp + 0x3c]
add dword [esp + 0xc], ecx
add esi, 4
cmp ebx, dword [esp + 0x48]
lea edi, [edi + edx*4]
jae 0x4b4716
cmp ebp, ebx
ja 0x4b4540
mov edx, dword [esp + 0x58]
mov dword [esi], edx
jmp 0x4b455c
sub esp, 0xc
push 0x1ed
jmp 0x4b4334
cmp dword [esp + 0x18], 1
je 0x4b41f2
sub esp, 0xc
push 0x1e1
jmp 0x4b4334
sub esp, 0xc
mov ebx, dword [esp + 0x7c]
push ebx
call sym._EC_POINT_new
mov dword [esp + 0x5c], eax
add esp, 0x10
test eax, eax
je 0x4b434f
xor edi, edi
cmp dword [esp + 8], 0
jbe 0x4b472b
mov ebx, dword [esp + 0x1c]
jmp 0x4b467b
sub esp, 8
mov eax, dword [esp + 0x88]
mov eax, dword [eax + edi*4]
push eax
mov edx, dword [ebx]
mov ecx, dword [edx]
push ecx
call sym._EC_POINT_copy
add esp, 0x10
test eax, eax
je 0x4b434f
mov esi, dword [esp + 0x34]
cmp dword [esi + edi*4], 1
ja 0x4b468a
inc edi
add ebx, 4
cmp dword [esp + 8], edi
jbe 0x4b472b
cmp edi, dword [esp + 0x7c]
jb 0x4b4640
sub esp, 8
mov eax, dword [esp + 0x58]
jmp 0x4b464d
mov esi, dword [esp + 0x88]
push esi
mov edx, dword [ebx]
mov ecx, dword [edx]
push ecx
mov eax, dword [esp + 0x54]
push eax
mov ebp, dword [esp + 0x7c]
push ebp
call sym._EC_POINT_dbl
add esp, 0x10
test eax, eax
je 0x4b434f
mov edx, dword [esp + 0x34]
mov esi, 1
mov ecx, dword [edx + edi*4]
dec ecx
mov eax, esi
shl eax, cl
cmp eax, 1
jbe 0x4b466d
sub esp, 0xc
mov ecx, dword [esp + 0x94]
push ecx
mov eax, dword [esp + 0x5c]
push eax
mov ebp, dword [ebx]
mov edx, dword [ebp + esi*4 - 4]
push edx
mov ecx, dword [ebx]
mov eax, dword [ecx + esi*4]
push eax
mov ebp, dword [esp + 0x8c]
push ebp
call sym._EC_POINT_add
add esp, 0x20
test eax, eax
je 0x4b434f
mov ebp, dword [esp + 0x34]
mov ecx, dword [ebp + edi*4]
dec ecx
mov edx, 1
inc esi
shl edx, cl
cmp edx, esi
ja 0x4b46c7
jmp 0x4b466d
sub esp, 0xc
mov ebx, dword [esp + 0x1c]
push ebx
call sym._CRYPTO_free
add esp, 0x10
jmp 0x4b41f2
mov eax, dword [esp + 0x88]
push eax
mov esi, dword [esp + 0x24]
push esi
mov ebx, dword [esp + 0x2c]
push ebx
mov edi, dword [esp + 0x7c]
push edi
call sym._EC_POINTs_make_affine
add esp, 0x10
test eax, eax
je 0x4b434f
mov edi, dword [esp + 0x28]
dec edi
mov ebp, 1
js 0x4b483f
test ebp, ebp
je 0x4b47f6
xor esi, esi
lea esi, [esi]
cmp esi, dword [esp + 0x48]
jae 0x4b4830
mov eax, dword [esp + 0x2c]
cmp dword [eax + esi*4], edi
jbe 0x4b47f0
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + esi*4]
movsx ebx, byte [edi + edx]
test ebx, ebx
je 0x4b47f0
mov eax, ebx
shr eax, 0x1f
je 0x4b479b
neg ebx
cmp eax, dword [esp + 0x38]
je 0x4b47bb
test ebp, ebp
je 0x4b48af
mov edx, dword [esp + 0x38]
test edx, edx
sete al
and eax, 0xff
mov dword [esp + 0x38], eax
test ebp, ebp
je 0x4b4869
sub esp, 8
mov edx, dword [esp + 0x24]
mov eax, dword [edx + esi*4]
sar ebx, 1
mov ecx, dword [eax + ebx*4]
push ecx
mov ebp, dword [esp + 0x80]
push ebp
call sym._EC_POINT_copy
add esp, 0x10
test eax, eax
je 0x4b434f
xor ebp, ebp
lea esi, [esi]
inc esi
jmp 0x4b4770
mov esi, dword [esp + 0x88]
push esi
mov ebx, dword [esp + 0x78]
push ebx
mov ecx, dword [esp + 0x7c]
push ecx
mov edx, dword [esp + 0x7c]
push edx
call sym._EC_POINT_dbl
add esp, 0x10
test eax, eax
jne 0x4b476a
jmp 0x4b434f
dec edi
jns 0x4b4762
test ebp, ebp
je 0x4b4925
sub esp, 8
mov esi, dword [esp + 0x7c]
push esi
mov edi, dword [esp + 0x7c]
push edi
call sym._EC_POINT_set_to_infinity
add esp, 0x10
test eax, eax
je 0x4b434f
mov dword [esp + 0x14], 1
jmp 0x4b434f
sub esp, 0xc
mov edx, dword [esp + 0x94]
push edx
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx + esi*4]
sar ebx, 1
mov edx, dword [eax + ebx*4]
push edx
mov eax, dword [esp + 0x88]
push eax
mov ecx, dword [esp + 0x8c]
push ecx
mov ebx, dword [esp + 0x8c]
push ebx
call sym._EC_POINT_add
add esp, 0x20
test eax, eax
je 0x4b434f
inc esi
jmp 0x4b4770
push eax
mov ecx, dword [esp + 0x8c]
push ecx
mov edx, dword [esp + 0x7c]
push edx
mov eax, dword [esp + 0x7c]
push eax
call sym._EC_POINT_invert
add esp, 0x10
test eax, eax
jne 0x4b47a9
jmp 0x4b434f
sub esp, 0xc
push 0x251
jmp 0x4b448b
sub esp, 0xc
push 0x234
push str..cryptoecec_mult.c
push 0x41
push 0xbb
push 0x10
call sym._ERR_put_error
add esp, 0x14
mov ebp, dword [esp + 0x1c]
push ebp
call sym._CRYPTO_free
add esp, 0x10
jmp 0x4b434f
sub esp, 0xc
push 0x23e
push str..cryptoecec_mult.c
push 0x44
jmp 0x4b48f3
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x4b485c
push edi
mov edx, dword [esp + 0x8c]
push edx
mov ecx, dword [esp + 0x7c]
push ecx
mov eax, dword [esp + 0x7c]
push eax
call sym._EC_POINT_invert
jmp 0x4b4851
sub esp, 0xc
push 0x215
jmp 0x4b4334
sub esp, 0xc
push 0x226
jmp 0x4b4334